【问题标题】:submenuitem with contents in menuitem - shiny dashboard包含 menuitem 内容的子菜单 - 闪亮的仪表板
【发布时间】:2020-12-09 21:38:34
【问题描述】:

我正在开发闪亮的应用程序,我需要在菜单项中有子菜单项,菜单项中有内容。

从 stackoverflow 研究后,我找到了以下链接, Show content for menuItem when menuSubItems exist in Shiny Dashboard

但上述解决方案中的问题是,每当我单击子菜单项时,菜单项下拉菜单就会关闭。所以我需要再次点击 menuitem,然后再次点击 menuitem 以获取 submenuitem 的下拉菜单。

请帮我解决这个问题。

当我点击子菜单时,下拉菜单不会自动关闭。

library(shiny)
library(shinydashboard)

convertMenuItem <- function(mi,tabName) {
  mi$children[[1]]$attribs['data-toggle']="tab"
  mi$children[[1]]$attribs['data-value'] = tabName
  if(length(mi$attribs$class)>0 && mi$attribs$class=="treeview"){
    mi$attribs$class=NULL
  }
  mi
}

ui <- dashboardPage(skin = "black", 

                dashboardHeader(
                  title = "test"), 
                dashboardSidebar(
                  sidebarMenu(id = "tabs",
                              convertMenuItem(menuItem("Data Scorecard", tabName = "scd",
                                                       menuSubItem("C1", tabName = "comp",icon = icon("angle-double-right")),
                                                       menuSubItem("C2", tabName = "consist",icon = icon("angle-double-right")),
                                                       menuSubItem("C3", tabName = "confirm",icon = icon("angle-double-right")),
                                                       menuSubItem("c4", tabName = "dupli",icon = icon("angle-double-right")),
                                                       menuSubItem("c5", tabName = "inte",icon = icon("angle-double-right")),
                                                       menuSubItem("c6", tabName = "accu",icon = icon("angle-double-right")),
                                                       menuSubItem("c7", tabName = "age",icon = icon("angle-double-right"))),"scd"))),


                dashboardBody(
                              tabItems(
                        tabItem(tabName = "scd", 
                                fluidRow(h4("scd"))),

                        tabItem(tabName = "comp",
                                fluidRow(h4("c1"))),
                        tabItem(tabName = "consist",
                                fluidRow(h4("c1"))),
                        tabItem(tabName = "confirm",
                                fluidRow(h4("c1"))),
                        tabItem(tabName = "dupli",
                                fluidRow(h4("c1"))),
                        tabItem(tabName = "inte", 
                                fluidRow(h4("c1"))),
                        tabItem(tabName = "accu",
                                fluidRow(h4("c1"))),
                        tabItem(tabName = "age",
                                fluidRow(h4("c1")))
                )))

server <- function(input, output, session) { 
  }
shinyApp(ui, server)

请查看图片以获得进一步说明。

谢谢 SJB

【问题讨论】:

    标签: r shiny


    【解决方案1】:

    对 menuItem() 使用 startExpanded = TRUE 参数。它应该在整个会话期间保持菜单打开。

    menuItem("Data Scorecard", tabName = "scd", startExpanded = TRUE, ...)
    

    【讨论】:

      猜你喜欢
      • 2018-02-14
      • 2021-12-07
      • 2016-12-09
      • 2019-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-22
      • 1970-01-01
      相关资源
      最近更新 更多