I have created dynamic sibebar menus in R shinydashboard. Even though I use selected = TRUE, no menuItem associated with a menu gets selected at startup in this
You have effectively to use updateTabItems(). To do so you have to set up an id for the sidebarMenu and update the corresponding menuItem or menuSubItem.
For your specific case you should do something like this:
library(shiny)
library(shinydashboard)
ui <- dashboardPage(
dashboardHeader(title = "Dynamic sidebar"),
dashboardSidebar(
sidebarMenu(id="tabs",
sidebarMenuOutput("menu")
)
),
dashboardBody(
tabItems(
tabItem(tabName = "m1", p("Menu content 1") ),
tabItem(tabName = "m2", p("Menu content 2") )
)
)
)
server <- function(input, output,session) {
output$menu <- renderMenu({
sidebarMenu(
menuItem("Menu item1", tabName="m1", icon = icon("calendar")),
menuItem("Menu item2", tabName="m2", icon = icon("database"))
)
})
isolate({updateTabItems(session, "tabs", "m2")})
}
shinyApp(ui, server)
Edited version to remove the indentation problem