完全禁用闪亮仪表板的特定选项卡的右侧边栏功能

Posted

技术标签:

【中文标题】完全禁用闪亮仪表板的特定选项卡的右侧边栏功能【英文标题】:Disable right sidebar ability at all for a specific tab of a shiny dashboard 【发布时间】:2020-06-30 18:29:09 【问题描述】:

我在下面有一个闪亮的仪表板,我想知道是否有一种方法可以在选择特定选项卡时默认隐藏左侧和右侧边栏。在这种情况下,选项卡'Front'。我用shinyJs() 做到了。有没有办法同时隐藏'gear' 图标以及完全从"Front" 打开右侧边栏的能力?更具体地说,当用户在Front 选项卡中时,根本不可能出现在他单击右上角的gear 图标时启用的右侧边栏显示。此选项卡没有右侧边栏,因为它是空的且无用的。

## app.R ##
        library(shiny)
        library(shinydashboard)
        library(shinydashboardPlus)
        library(DT)
        library(shinyWidgets)
        library(shinyjs)
        ui <- dashboardPagePlus(
            dashboardHeaderPlus(
                enable_rightsidebar = TRUE,
                rightSidebarIcon = "gears",
                fixed = T
            ),

            dashboardSidebar(
            ),

            dashboardBody(
                useShinyjs(),
                tags$hr(),
                tabsetPanel(
                    id ="tabA",
                    type = "tabs",
                    tabPanel("Front",icon = icon("accusoft")),
                    tabPanel("Data", icon = icon("table")


                    )
                )
            ),
            rightsidebar = rightSidebar(

            )
        )

        server <- function(input, output) 
            observe(
               if (input$tabA == "Front") 
                   addClass(selector = "body", class = "sidebar-collapse")
                   removeClass(selector = "body", class = "control-sidebar-open")
                else 
                   removeClass(selector = "body", class = "sidebar-collapse")
                   addClass(selector = "body", class = "control-sidebar-open")
               
            )
        

        shinyApp(ui = ui, server = server)

【问题讨论】:

我不明白,你想隐藏除wen Data 之外的所有选项卡的侧边栏面板?目前,在标签Front 上隐藏侧边栏面板 但如果你愿意,我想阻止显示正确的能力 您能否在帖子中添加一些有关预期行为的详细信息?当我们启动它时应用程序应该是什么样子,如果我们点击这个选项卡或这个选项卡应该附加什么,等等。 【参考方案1】:

请看以下内容:

## app.R ##
library(shiny)
library(shinydashboard)
library(shinydashboardPlus)
library(DT)
library(shinyWidgets)
library(shinyjs)

ui <- dashboardPagePlus(
  dashboardHeaderPlus(
    enable_rightsidebar = TRUE,
    rightSidebarIcon = "gears",
    fixed = T
  ),
  dashboardSidebar(),
  dashboardBody(
    useShinyjs(),
    tags$hr(),
    tabsetPanel(
      id ="tabA",
      type = "tabs",
      tabPanel("Front",icon = icon("accusoft")),
      tabPanel("Data", icon = icon("table")
      )
    )
  ),
  rightsidebar = rightSidebar()
)

server <- function(input, output) 
  observe(
    if (input$tabA == "Front") 
      hide(selector = "body > div.wrapper > header > nav > div:nth-child(4) > ul")
      addClass(selector = "body", class = "sidebar-collapse")
      removeClass(selector = "body", class = "control-sidebar-open")
     else 
      show(selector = "body > div.wrapper > header > nav > div:nth-child(4) > ul")
      removeClass(selector = "body", class = "sidebar-collapse")
      addClass(selector = "body", class = "control-sidebar-open")
    
  )


shinyApp(ui = ui, server = server)

【讨论】:

以上是关于完全禁用闪亮仪表板的特定选项卡的右侧边栏功能的主要内容,如果未能解决你的问题,请参考以下文章

从服务器端禁用/启用侧边栏

如何在闪亮的仪表板侧边栏中的 menuItem 或固定框下创建 checkBoxGroup 项?

如何让wordpress首页完全去掉侧边栏

以编程方式在闪亮仪表板中切换侧边栏菜单的显示

vue07----axiosjsonp插件使用优化数据优化过滤数据点击右侧边栏进行跳转点击侧边栏字母高亮侧边栏控制列表滚动滚动列表侧边栏高亮嵌套路由列表至详情

如何使网站内容在右侧边栏之后?