【问题标题】:renderMenu resulting in strange formatting, R Shiny DashboardrenderMenu 导致奇怪的格式,R Shiny Dashboard
【发布时间】:2020-01-31 05:51:46
【问题描述】:

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

在将 div() 分配给菜单后,我尝试了一些 Shinyjs 隐藏/显示功能,但最终结果是一种奇怪的、不匹配的格式。我认为 renderMenu 可能是更好的路径。我不希望使用 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)

产生这个结果:

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

【问题讨论】:

    标签: r shiny dashboard


    【解决方案1】:

    使用menuItemOutput 代替uiOutput。此外,您的menuItemmenuSubItem 的层次结构似乎不正确。 menuSubItem 应该是 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)
    

    【讨论】:

      猜你喜欢
      • 2015-08-07
      • 2021-05-28
      • 2012-03-29
      • 2018-02-21
      • 1970-01-01
      • 2020-10-28
      • 1970-01-01
      • 1970-01-01
      • 2019-08-05
      相关资源
      最近更新 更多