如何使闪亮仪表板的选项卡不可见?

问题描述 投票:0回答:1

我尝试使用 CSS 样式(适用于按钮)来隐藏以下应用程序的第三个选项卡:

library(shiny)
library(shinydashboard)
library(shinyDashboardPlus)
library(shinyjs)

ui <- dashboardPage(
  dashboardHeader(),
  dashboardSidebar(
    sidebarMenu(
      id = "tabs",  # Set an ID for the sidebar menu
      menuItem("Tab 1", tabName = "tab1"),
      menuItem("Tab 2", tabName = "tab2"),
      menuItem("Invisible Tab", tabName = "invisible_tab", style = "visibility: hidden;")
    )
  ),
  dashboardBody(
    tabItems(
      tabItem(
        tabName = "tab1",
        useShinyjs()
      ),
      tabItem(
        tabName = "tab2",
        useShinyjs(), 
        h3("tab2")
      ),
      tabItem(
        tabName = "invisible_tab",
        h3("Invisible Tab Content")
      )
    )
  )
)

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

shinyApp(ui, server)

选项卡的内容不显示,但选项卡的标题保留在侧边栏中...如何隐藏它就像不存在一样?

css r shiny shinydashboard
1个回答
0
投票

所有

menuItem
都由带有
<a>
属性的
href
标签定义,该属性被构造为
#shiny-tab-[tabName]
,其中
tabName
menuItem
的相应参数。

因此,如果您使用

定义您的
menuItem

menuItem("Invisible Tab", tabName = "invisible_tab")

然后您就可以应用

CSS

a[href = '#shiny-tab-invisible_tab']{
    visibility: hidden;
}

用于将其设置为不可见。

library(shiny)
library(shinydashboard)
library(shinydashboardPlus)
library(shinyjs)

ui <- dashboardPage(
    dashboardHeader(),
    dashboardSidebar(
        tags$head(tags$style(HTML("
                                  a[href = '#shiny-tab-invisible_tab']{
                                      visibility: hidden;
                                  }
                                  "))),
        sidebarMenu(
            id = "tabs",  # Set an ID for the sidebar menu
            menuItem("Tab 1", tabName = "tab1"),
            menuItem("Tab 2", tabName = "tab2"),
            menuItem("Invisible Tab", tabName = "invisible_tab")
        )
    ),
    dashboardBody(
        tabItems(
            tabItem(
                tabName = "tab1",
                useShinyjs()
            ),
            tabItem(
                tabName = "tab2",
                useShinyjs(), 
                h3("tab2")
            ),
            tabItem(
                tabName = "invisible_tab",
                h3("Invisible Tab Content")
            )
        )
    )
)

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

shinyApp(ui, server)
© www.soinside.com 2019 - 2024. All rights reserved.