问题描述
我试图通过单击侧边栏菜单的选项卡之一(名为“分析”)来切换 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 (将#修改为@)