我正在尝试根据conditionalPanel
下拉框中的项目数量实施selectInput
。
根据下拉列表的值,我可以让条件工作(textInput
字段允许您设置下拉列表中的项目数量):
runApp(
list(ui = fluidPage(
textInput("in_number", "number",1),
uiOutput("dropdown"),
conditionalPanel("input.dropdown >= 3", p("show some stuff"))
),
server = function(input, output, session) {
output$dropdown <- renderUI({
selectInput("dropdown","My Dropdown", c(1:input$in_number))
})
}
)
)
但是,如果我将conditionalPanel
更改为:
conditionalPanel("input.dropdown.length >= 3", p("show some stuff"))
然后它不起作用。我在开发人员工具控制台中收到一条错误消息,指出“无法读取未定义的属性'长度'
我认为这与闪亮定义下拉项目有关。
编辑:澄清我的需求。 有没有办法做javascript条件,这将允许我评估下拉列表中的项目数,而不是评估下拉列表的值?
答案 0 :(得分:-1)
我知道你现在的意思。我建议您使用shinyjs
包及其toggle
功能来执行您想要的操作。
rm(list = ls())
library(shiny)
library(shinyjs)
runApp(
list(ui = fluidPage(
shinyjs::useShinyjs(),
textInput("in_number", "number",3),
uiOutput("dropdown"),
p(id = "mydiv", "show some stuff")
),
server = function(input, output, session) {
output$dropdown <- renderUI({
selectInput("dropdown1","My Dropdown", c(1:input$in_number))
})
observe({
toggle(id = "mydiv", condition = as.numeric(input$in_number) >= 3)
})
}
)
)