【问题标题】:Dynamic sidebar menu RShiny动态侧边栏菜单 R Shiny
【发布时间】:2016-05-04 16:45:43
【问题描述】:

我的仪表板有问题。 我想创建一个动态侧边栏菜单,但默认情况下,菜单项不起作用。用户必须单击它才能显示它。我找到了一个关于这个问题的例子 https://github.com/rstudio/shinydashboard/issues/71 但解决方案不起作用。 如果您有想法...提前谢谢您

library(shiny)
library(shinydashboard)

ui <- dashboardPage(
  dashboardHeader(title = "Dynamic sidebar"),
  dashboardSidebar(
    sidebarMenuOutput("menu")
  ),
  dashboardBody(tabItems(
    tabItem(tabName = "dashboard", h2("Dashboard tab content"))
  ))
)

server <- function(input, output) {
  output$menu <- renderMenu({
    sidebarMenu(id="mytabs",
      menuItem("Menu item", tabName="dashboard", icon = icon("calendar"))
    )
  })
}

shinyApp(ui, server)

【问题讨论】:

  • 比起使用renderMenu函数,使用htmlOutput和renderUI要容易得多,然后你可以在里面放任何你想要的东西。
  • 给定的代码对我有用
  • @Shape 是的,但我也有同样的问题:ui &lt;- dashboardPage( dashboardHeader(title = "Dynamic sidebar"), dashboardSidebar( uiOutput("menu") ), dashboardBody(tabItems( tabItem(tabName = "dashboard", h2("Dashboard tab content")) )) ) server &lt;- function(input, output) { output$menu &lt;- renderUI({ sidebarMenu(id="mytabs", menuItem("Menu item", tabName="dashboard", icon = icon("calendar"))) }) } shinyApp(ui, server)
  • @kppatel-patel 是的,它可以工作,但这不是我想要的,用户没有点击菜单项,而是直接移动到内容菜单项。

标签: r shiny shinydashboard


【解决方案1】:

这是使用updateTabItems 的解决方案。

library(shiny)
library(shinydashboard)

ui <- dashboardPage(
  dashboardHeader(title = "Dynamic sidebar"),
  dashboardSidebar(
    sidebarMenu(id="mytabs",
      sidebarMenuOutput("menu")
    )
  ),
  dashboardBody(tabItems(
    tabItem(tabName = "dashboard", h2("Dashboard tab content"))
  ))
)

server <- function(input, output, session) {
  output$menu <- renderMenu({
    sidebarMenu(
              menuItem("Menu item", tabName="dashboard", icon = icon("calendar"))
    )
  })
  isolate({updateTabItems(session, "mytabs", "dashboard")})
}

shinyApp(ui, server)

要扩展到动态菜单,您可以查看此示例。 R shinydashboard dynamic menu selection

编辑:我认为isolate 是不需要的,但我喜欢把它放在改进代码阅读的方式中

【讨论】:

  • 非常乐意提供帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-07-03
  • 1970-01-01
  • 2020-07-16
  • 2019-09-18
  • 2017-05-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多