R shinydashboard动态菜单选择 [英] R shinydashboard dynamic menu selection
本文介绍了R shinydashboard动态菜单选择的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我已经在R shinydashboard中创建了动态sibebar菜单。即使我使用selected = TRUE
,在此动态模式下启动时也不会选择与菜单关联的任何菜单项。
如何确保我能够控制在此动态模式下启动时显示哪些菜单项的内容?
我一直在到处搜索类似的帖子。到目前为止,找不到任何有效的东西。updateTabItems()
似乎不起作用。
有什么想法吗? 感谢Advance。
library(shiny)
library(shinydashboard)
ui <- dashboardPage(
dashboardHeader(title = "Dynamic sidebar"),
dashboardSidebar(
sidebarMenuOutput("menu")
),
dashboardBody(
tabItems(
tabItem(tabName = "m1", p("Menu content 1") ),
tabItem(tabName = "m2", p("Menu content 2") )
)
)
)
server <- function(input, output) {
output$menu <- renderMenu({
sidebarMenu(
menuItem("Menu item1", tabName="m1", icon = icon("calendar")),
menuItem("Menu item2", tabName="m2", icon = icon("database"),selected = TRUE)
)
})
}
shinyApp(ui, server)
编辑:Romain的Anwser出现的缩进问题
推荐答案
您必须有效地使用updateTabItems()
。为此,您必须为sidebarMenu
设置ID,并更新相应的menuItem
或menuSubItem
。
对于您的特定情况,您应该这样做:
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)
已编辑版本以消除缩进问题
这篇关于R shinydashboard动态菜单选择的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文