【发布时间】:2020-05-11 02:13:00
【问题描述】:
我正在尝试在 R Shiny Dashboard 中创建一个动态侧边栏面板。我已经成功添加了根据是否满足预定义条件来添加侧边栏菜单项的功能。但是,一旦我单击应用程序中已经存在的任何子菜单项,动态内容就会消失。以下是该问题的一个工作示例:
library(shinycssloaders)
library(shinyalert)
library(shinydashboard)
library(shinyWidgets)
ui <- dashboardPage(dashboardHeader(title = "Title"),
dashboardSidebar(
sidebarMenu(
id = "tabss"
,menuItem("General Information", tabName = "General_Information", icon = icon("android"))
,sidebarMenuOutput("dynamic_content")
,menuItem("Settings", tabName = "settings", icon = icon("cogs")
,menuSubItem("Setting1", tabName = "Setting1", icon = icon("cogs"))
,menuSubItem("Setting2", tabName = "Setting2", icon = icon("cogs")))
)),
dashboardBody(
tabItems(
tabItem("General_Information",
actionButton("add_menuItem",label = "Add Menu Item"))
)
)
)
server <- function (input, output, session){
observeEvent(input$add_menuItem,{
output$dynamic_content <- renderMenu(menuItem("Dynamic Menu","dynamicMenu"))
})
}
shinyApp(ui, server, options = c(launch.browser = T))
在上面的示例中,使用常规信息页面上的操作按钮会在侧栏面板上在常规信息和设置之间添加一个菜单项。但是,打开设置子菜单会导致动态添加的菜单项从侧边栏中消失。
我正在寻找一种解决方法,以便动态创建的菜单项不会消失。我会欢迎并感谢任何帮助。如果有更多信息对解决方案有帮助,请告诉我。谢谢!
【问题讨论】:
标签: r shiny shinydashboard shinyjs shinyapps