R Shiny - 条件面板中的条件面板

10
我想知道是否有可能在另一个条件面板中嵌套条件面板。
例如,如果我有一个下拉列表有两个选项:1和2
选择1将显示一组选项,选择2将显示另一组选项。
但是,是否可以在这些条件面板中嵌套条件面板,以便我可以在选项1的输入中有另一个下拉列表。
这里是一个示例代码,展示了我所尝试做的事情,但是它不起作用。
 selectInput("n", label = h3("Select Option"), 
                choices = list("1" = 1, "2" = 2),
                selected = 1),
  #1
  conditionalPanel(
    condition = "input.n == '1'",
    titlePanel("1 Options"),
    selectInput("b", label = h4("Select Option"), 
                choices = list("A" = 1, "B" = 2),
conditionalPanel(
condition = "input.b == '1'",
    titlePanel("1 Options")
),

conditionalPanel(
condition = "input.b == '2'",
    titlePanel("2 Options")
),

    )),

你可以使用uiOutput和renderUI来动态生成一个ui元素,基于一个选择输入,而不是使用conditionalpanel(请查看obersevEvent)。 - Xiongbing Jin
1个回答

5

是的,您可以轻松地嵌套条件面板,更或者说是像您尝试的那样。在您的代码中,您只是有一些错放的括号和额外的逗号。这里是一个可以实现您所要求的工作的应用程序:

ui <- fluidPage(
  selectInput("n", label = h3("Select Option"), 
        choices = list("1" = 1, "2" = 2),
        selected = 1),
  conditionalPanel(
    condition = "input.n == '1'",
    titlePanel("1 Options"),
    selectInput("b", label = h4("Select Option"), 
          choices = list("A" = 1, "B" = 2)),
    conditionalPanel(
          condition = "input.b == '1'",
          titlePanel("1 Options")
      ),
      conditionalPanel(
          condition = "input.b == '2'",
          titlePanel("2 Options")
      )      
  )
)

server <- function(input, output){}

shinyApp(ui, server)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接