闪亮:如何选择打开菜单中的第一个子项

时间:2018-11-13 10:43:19

标签: r shiny shinydashboard

我有一个非常复杂的闪亮应用程序,其所有menuItems都呈现在服务器部分内。这是必要的。现在我找不到解决方案,该如何选择菜单中打开的第一个子项目。第一页只是空白。

library(shiny)
library(shinydashboard)


ui <- dashboardPage(
  dashboardHeader(
    title = "Shiny"
  ),

  dashboardSidebar(
    sidebarMenu(

      menuItemOutput("Section_1")

    )
  ),

  dashboardBody(

    tabItems(
      tabItem("report_1",h1("a")),
      tabItem("report_2",h1("b")),
      tabItem("report_3",h1("c"))
    )
  )
)


server <- function(input, output) {

    output$Section_1 <- renderMenu({

      menuItem("Section_1", tabName = "section_1", icon = icon("align-justify"), 
               startExpanded = TRUE, selected = TRUE,
               menuSubItem("Subsection 1", tabName = "report_1", selected = TRUE),
               menuSubItem("Subsection 2", tabName = "report_2"),
               menuSubItem("Subsection 3", tabName = "report_3"))

    })

}

shinyApp(ui,server)

1 个答案:

答案 0 :(得分:2)

您可以将id添加到sidebarMenu,然后从tabName中选择observer

library(shiny)
library(shinydashboard)


ui <- dashboardPage(
    dashboardHeader(
        title = "Shiny"
    ),

    dashboardSidebar(
        sidebarMenu(id = "tabs",
            menuItemOutput("Section_1")
        )
    ),

    dashboardBody(

        tabItems(
            tabItem("report_1",h1("a")),
            tabItem("report_2",h1("b")),
            tabItem("report_3",h1("c"))
        )
    )
)


server <- function(session, input, output) {

    output$Section_1 <- renderMenu({

        menuItem("Section_1", tabName = "section_1", icon = icon("align-justify"), startExpanded = TRUE,
                 menuSubItem("Subsection 1", tabName = "report_1"),
                 menuSubItem("Subsection 2", tabName = "report_2"),
                 menuSubItem("Subsection 3", tabName = "report_3")
        )

    })

    observe({
        updateTabItems(session, "tabs", selected = "report_1")
    })
}

shinyApp(ui,server)
相关问题