【发布时间】:2020-06-20 03:00:26
【问题描述】:
我的 ShinyApp 需要两组复选框(下面我的代码中的 check1 和 check2)。该应用程序将根据用户的选择填充不同的下拉菜单。
但是,if else 语句似乎与prettyRadioButtons 一起工作正常,但是当我将它应用于checkboxGroupInput 时它不起作用。我的应用程序的简化版本如下所示。我的if 声明中是否遗漏了什么?提前致谢!
ui <- fluidPage(
titlePanel("Dynamic Boxes"),
fluidRow(
prettyRadioButtons("check1", "Please Pick", c("Option 1" = "op1", "Option 2" = "op2"), selected=character(0), shape="square", outline = T, inline = T),
checkboxGroupInput("check2", "Please Pick", c("Option 3" = "op3", "Option 4" = "op4"), inline = T),
fluidRow(hidden(selectInput('select_1', 'No.1 Select',choices = list1))),
fluidRow(hidden(selectInput('select_2', 'No.2 Select',choices = list2))),
fluidRow(hidden(selectInput('select_3', 'No.3 Select',choices = list3))),
fluidRow(hidden(selectInput('select_4', 'No.4 Select',choices = list4))),
fluidRow(hidden(selectInput('select_5', 'No.5 Select',choices = list5)))
)
)
server <- function(input, output){
observeEvent(input$check1, {
if(!is.null(input$check1)){
if(input$check1 == 'op1'){
showElement('select_1')
}
else if(input$check1 == 'op2'){
if(length(input$check2) == 1){
if(input$check2 == 'op3'){showElement('select_2')}
else if(input$check2 == 'op4'){showElement('select_3')}
}
else if(length(input$check2) == 2){showElement('select_4')}
}
}
})
}
【问题讨论】:
-
感谢您的应用程序的简化版本,您能用它制作一个minimal reproducible example 吗?
标签: r shiny shinydashboard shinyapps shiny-reactivity