我目前正在使用 Shinydashboard,但我希望有不同的 sidbar 菜单与主体中的内容相关联。这可以通过 Shiny 的仪表板实现吗?
例如:
我想要这样的东西
https://gallery.shinyapps.io/CDCPlot/
看看当您单击导航栏选项时,侧边栏菜单和正文如何变化。
在shinydashboad中这可能吗?我喜欢 Shinydashboard 的外观和感觉,宁愿不回到 Shiny 的状态。
底层代码在这里:https://github.com/NLMichaud/WeeklyCDCPlot/blob/master/ui.R
并使用 tabpanels 和导航栏。在 Shinydashboard 中有类似的东西吗?
有代码的例子吗?
谢谢!
最佳答案
你问的是棘手的,可能是不可能的,因为在 Shinydashboard 中,顶级导航控件位于dashboardSidebar(左侧)内,内容包含在dashboardBody(右侧)内。如果您在dashboardBody 中放置一个navMenu,它必须属于一个特定的侧边栏项目,并且如果您稍后单击另一个侧边栏项目,它将消失。
您可能需要更改实现此目的的方式。根据您想要做什么,您可以尝试:
创建一个带有通常位于顶部菜单中的菜单项的dashboardSidebar,您可以将该菜单的所有控件放在关联的tabItem 下。您甚至可以使用 renderMenu()
使其全部动态化。在 server.R 中:
output$menu <- renderMenu({
sidebarMenu(id = "sidebMenu",
menuItem("Load Data", tabName = "loadData", icon = icon("database"),
actionButton("press", "Press me")
)
})
这样做的缺点可能是您可以在侧边栏菜单中放置的控件数量有限,但它仍然看起来不错。但这就是仪表板的制作方式。
或者
使用无侧边栏的全屏仪表板
dashboardSidebar(disable = TRUE)
并以与您提到的示例类似的方式使用导航菜单。您将没有 Shinydashboard 的侧边栏,您必须像在示例中一样制作自己的侧边栏。这样,您可能仍会享受到 Shinydashboard 提供的其他功能,如通知、框、皮肤、状态框等。但这只是一个建议,这取决于您。希望这可以帮助。
关于r - Shinydashboard 可以使用 Tabpanels 并具有导航栏吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32596191/