动态菜单:带有子项的 ID 项
Dynamic menu: ID item with subitems
我有一个仪表板可以帮助用户跟踪杂务列表。琐事在 sidebarMenu
中列为 menuSubItem
。因此,如果已经创建了与琐事相对应的文件,我希望在 menuSubItem
.
旁边放置一个复选图标
我很难理解为什么 menuSubItem
会等到我点击 test
然后再点击 home
才渲染...我试过打印out input$test_subitems
似乎无法跟踪何时选择了 test
。
library(shiny)
library(shinydashboard)
ui <- dashboardPage(
skin = "blue",
dashboardHeader(title = "Dynamic Menu"),
dashboardSidebar(
sidebarMenu(
id = "sidebarMenu",
menuItem("Home", tabName = "home", icon = icon("home")),
menuItem("Item with subitems", tabName = "test",
uiOutput("test_subitems"))
)
),
dashboardBody( id = "dashboardBody" )
)
server <- shinyServer(function(input, output, session) {
observe(cat('1:', input$sidebarMenu, '\n'))
output$test_subitems <- renderUI({
print(input$sidebarMenu)
tabs <- c("st1","st2")
lapply(tabs, function(tab) {
menuSubItem(icon = NULL, paste('Test:', tab), tabName = tab)
})
})
session$onSessionEnded(stopApp)
})
shinyApp(ui, server)
虽然我没有找到用子项目标识项目的方法,但 suspendWhenHidden
似乎对我有用:
outputOptions(output, "test_subitems", suspendWhenHidden = FALSE)
我有一个仪表板可以帮助用户跟踪杂务列表。琐事在 sidebarMenu
中列为 menuSubItem
。因此,如果已经创建了与琐事相对应的文件,我希望在 menuSubItem
.
我很难理解为什么 menuSubItem
会等到我点击 test
然后再点击 home
才渲染...我试过打印out input$test_subitems
似乎无法跟踪何时选择了 test
。
library(shiny)
library(shinydashboard)
ui <- dashboardPage(
skin = "blue",
dashboardHeader(title = "Dynamic Menu"),
dashboardSidebar(
sidebarMenu(
id = "sidebarMenu",
menuItem("Home", tabName = "home", icon = icon("home")),
menuItem("Item with subitems", tabName = "test",
uiOutput("test_subitems"))
)
),
dashboardBody( id = "dashboardBody" )
)
server <- shinyServer(function(input, output, session) {
observe(cat('1:', input$sidebarMenu, '\n'))
output$test_subitems <- renderUI({
print(input$sidebarMenu)
tabs <- c("st1","st2")
lapply(tabs, function(tab) {
menuSubItem(icon = NULL, paste('Test:', tab), tabName = tab)
})
})
session$onSessionEnded(stopApp)
})
shinyApp(ui, server)
虽然我没有找到用子项目标识项目的方法,但 suspendWhenHidden
似乎对我有用:
outputOptions(output, "test_subitems", suspendWhenHidden = FALSE)