renderMenu 导致奇怪的格式,R Shiny Dashboard

renderMenu resulting in strange formatting, R Shiny Dashboard

我正在从我的 Shiny 应用程序的服务器创建侧边栏菜单,但服务器生成的菜单的格式与 UI 中创建的菜单不匹配。

在将 div() 分配给菜单后,我尝试了一些 shinyjs hide/show 函数,但结果也是奇怪的、不匹配的格式。我认为 renderMenu 可能是更好的路径。我不希望 'hack' 与 CSS,但任何帮助表示赞赏。

这是一个工作脚本:

library(shiny)
library(shinydashboard)

ui <- dashboardPage(
  dashboardHeader(title = 'Header'),
  dashboardSidebar(
    sidebarMenu(
      menuItem('First Menu', tabName = 'first_menu'),
        menuSubItem('sub1', tabName = 'sub_1'),
        menuSubItem('sub2', tabName = 'sub_2'),
      uiOutput('server_menu')
    )
  ),
  dashboardBody()
)

server <- function(input, output) {

  output$server_menu <- renderMenu({
    list(
      menuItem('Second Menu', tabName = 'second_menu'),
               menuSubItem('sub3', tabName = 'sub_3'),
               menuSubItem('sub4', tabName = 'sub_4')
              )
  }) 

}

shinyApp(ui, server)

产生这个结果:

任何关于如何解决这个问题的建议都很棒!干杯

而不是 uiOutput,使用 menuItemOutput。此外,您的 menuItemmenuSubItem 层次结构似乎不正确。 menuSubItem 应该是 child 的 menuItem

library(shiny)
library(shinydashboard)

ui <- dashboardPage(
    dashboardHeader(title = 'Header'),
    dashboardSidebar(
        sidebarMenu(
            menuItem(
                'First Menu', 
                tabName = 'first_menu',
                menuSubItem('sub1', tabName = 'sub_1'),
                menuSubItem('sub2', tabName = 'sub_2')
            ),
            menuItemOutput('server_menu') # Changed from uiOuput to menuItemOutput
        )
    ),
    dashboardBody()
)

server <- function(input, output) {

    output$server_menu <- renderMenu({
        list(
            # modified hierarchies
            menuItem(
                'Second Menu', 
                tabName = 'second_menu',
                menuSubItem('sub3', tabName = 'sub_3'),
                menuSubItem('sub4', tabName = 'sub_4')
            )
        )
    }) 

}

shinyApp(ui, server)