8

有没有办法从服务器端手动禁用/启用闪亮仪表板应用程序的侧边栏?

当我需要更多空间而不使用标题上的切换按钮时,我想自动隐藏侧边栏。

谢谢

4

1 回答 1

16

我对仪表板不是很熟悉,因为我从未构建过仪表板,但快速浏览一下,似乎在单击打开/隐藏侧边栏按钮时,所发生的只是一个sidebar-collapse类被添加/删除到<body>标签中。也许发生了更多我不知道的事情,但这似乎是最明显的事情。

所以你可以很容易地使用shinyjs包(免责声明:我是作者)来添加/删除那个类

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

shinyApp(
  ui = 
    dashboardPage(
      dashboardHeader(),
      dashboardSidebar(),
      dashboardBody(
        shinyjs::useShinyjs(),
        actionButton("showSidebar", "Show sidebar"),
        actionButton("hideSidebar", "Hide sidebar")
      )
    ),
  server = function(input, output, session) {
    observeEvent(input$showSidebar, {
      shinyjs::removeClass(selector = "body", class = "sidebar-collapse")
    })
    observeEvent(input$hideSidebar, {
      shinyjs::addClass(selector = "body", class = "sidebar-collapse")
    })
  }
)
于 2015-07-09T01:39:34.997 回答