如何使用侧边栏元素切换面板?

时间:2021-01-20 16:49:32

标签: r shiny shinydashboard

我试图通过单击侧边栏菜单的选项卡之一(名为“分析”)来切换 wellPanel。不幸的是,单击选项卡后面板不会切换。我要捕获的输入 ID 有问题吗?

用户界面

#...some ui code

      shinydashboard:: dashboardSidebar(
        shinydashboard::sidebarMenu(id = "sidebarID",
          shinydashboard::menuItem("Live", tabName = "live", icon = icon("circle")),
          shinydashboard::menuItem("Drivers", tabName = "drivers", icon = icon("user-friends")),
          shinydashboard::menuItem("Analytics", tabName = "analytics", icon = icon("chart-line"), id = "analytics"))
        
      ),
          
       shinyjs::hidden(wellPanel(id = "panelOne",
               tagList(actionButton("btn1", NULL, icon = icon("chart-line")),
                       actionButton("btn2", NULL, icon = icon("user-friends")))),

#etc. ui code..

服务器

  observeEvent(input$sidebarID, {
    shinyjs::toggle(id = "panelOne", condition = input$sidebarID == "analytics")
  })

我也试过这个,但它不起作用:

  observeEvent(input$sidebarID, {    
    if(input$sidebarID == "analytics") {
    shinyjs::toggle(id = "panelOne")
    }
  })

我不想在这里使用 conditionalPanel ,它有点像切换(我不能在同一个选项卡上点击“返回”切换它,这就是为什么我需要使用上面这样的其他解决方案).

编辑:我发现从 id = "analytics" 中删除 menuItem 可以解决问题,但不能完全解决 - 当我第一次点击“分析”标签然后面板切换时但是当我再次单击“分析”选项卡时,面板不会切换。我需要单击另一个选项卡将其隐藏,然后再次单击“分析”选项卡。

0 个答案:

没有答案