如何在navbarPage中动态显示和隐藏tabPanel?[副本]

ehxuflar  于 2023-10-13  发布在  其他
关注(0)|答案(1)|浏览(108)

这个问题已经有答案了

Hide tabPanel via conditionalPanel in shiny tabBox(1个答案)
11小时前关闭
我正在使用navbarPage结构创建一个闪亮的应用程序,我有一个无法解决的案例。我有两个tabPanel:

  • 表1,
  • 表2.

tab1应该始终可用,但tab2的可见性应取决于tab1中复选框的值。
我知道如何使用appendTab添加选项卡,但如何隐藏/删除它?
下面是我在试图找到解决方案时创建的代码。

library(shiny)

ui <- navbarPage(
  id = "navbarPage_id",
  "Dynamic TabPanel Example",
  tabPanel("Tab 1", value = "tab1", uiOutput("CHECKBOX"))
)

server <- function(input, output) {
  output$CHECKBOX <- renderUI({
    checkboxInput(inputId = "checkboxInput_id", label = "Show", value = TRUE)
  })
  
  observeEvent(input$checkboxInput_id, {
    if(input$checkboxInput_id){
      appendTab(inputId = "navbarPage_id", tabPanel("Tab 2", value = "tab2"))
    }
  })
}

shinyApp(ui, server)
1l5u6lss

1l5u6lss1#

下面是一个使用showTabhideTab的例子。

library(shiny)

ui <- navbarPage(
    id = "tabs",
    "Dynamic TabPanel Example",
    tabPanel("Tab 1", value = "tab1", uiOutput("CHECKBOX")),
    tabPanel("Tab 2", value = "tab2")
)

server <- function(input, output) {
    output$CHECKBOX <- renderUI({
        checkboxInput(inputId = "checkboxInput_id",
                      label = "Show",
                      value = TRUE)
    })
    
    observeEvent(input$checkboxInput_id, {
        if (input$checkboxInput_id) {
            showTab(inputId = "tabs", target = "tab2")
        } else {
            hideTab(inputId = "tabs", target = "tab2")
        }
    })
    
}

shinyApp(ui, server)

相关问题