问题描述
我正在尝试制作一个闪亮的侧边栏面板,其中有一个始终存在的输入,并且只有在选中复选框后才会出现。我能找到的所有相关解决方案都在谈论将 checkBoxInput
用于 output
上的条件,但我不确定如何实现这一点。为了显示我需要什么,这是我的代码片段:
require(shiny)
ui <- fluidPage(
titlePanel('My App'),sidebarPanel(selectInput(inputId = "id1",label = "something 1",choices = c('a','b','c')),checkBoxInput("test_check","Do you want to this?",value = FALSE),uIoUtput("test"),# checkBox to see if the user wants a comparison
selectInput(inputId = "id2",label = "something2",'c'))
),mainPanel(
tabPanel("Some Info",htmlOutput(outputId = "info1"))
))
server <- function(input,output,session){}
shinyApp(ui = ui,server = server)
所以我想让 id2
仅在复选框被选中时出现在侧边栏中,但不知道如何去做。谢谢。
解决方法
您可以将一些 UI 移动到服务器以检查该框,当一个输入依赖另一个输入时,这是我所做的,然后您只需要使用 req()
ui <- fluidPage(
titlePanel('My App'),sidebarPanel(selectInput(inputId = "id1",label = "something 1",choices = c('a','b','c')),checkboxInput("test_check","Do you want to this?",value = FALSE),uiOutput("test"),# checkbox to see if the user wants a comparison
uiOutput("id2")
),mainPanel(
tabPanel("Some Info",htmlOutput(outputId = "info1"))
))
server <- function(input,output,session){
output$id2 <-
renderUI({
req(input$test_check)
selectInput(inputId = "id2",label = "something2",'c'))
})
}
shinyApp(ui = ui,server = server)