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

问题描述

我试图通过单击侧边栏菜单的选项卡之一(名为“分析”)来切换 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",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 可以解决问题,但不能完全解决 - 当我第一次点击“分析”标签然后面板切换时但是当我再次单击“分析”选项卡时,面板不会切换。我需要单击另一个选项卡将其隐藏,然后再次单击“分析”选项卡。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...