动态侧边栏菜单RShiny

CCl*_*ire 2 r shiny shinydashboard

我的仪表板有问题。我想创建一个动态的侧边栏菜单,但是默认情况下,菜单项不起作用。用户必须对其进行显示才能显示出来。我在这个问题上找到了一个例子 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)
Run Code Online (Sandbox Code Playgroud)

Rom*_*ain 5

这是使用的解决方案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)
Run Code Online (Sandbox Code Playgroud)

要扩展到动态菜单,您可以看到此示例。 R Shinydashboard动态菜单选择

编辑:我认为isolate不需要,但是我喜欢以某种方式来改进代码的阅读