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

Geo*_*any 6 r shiny shinydashboard shinyjs

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

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

谢谢

Dea*_*ali 13

我不是很熟悉仪表板,因为我从来没有构建过,但是从快速查看看起来,当点击打开/隐藏侧边栏按钮时,所有发生的事情都是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")
    })
  }
)
Run Code Online (Sandbox Code Playgroud)

  • 顺便说一句,自第一个版本以来我一直在使用您的库(shinyjs)。对于像我这样有 JS 基础经验的人来说非常有用。我真的很喜欢你对库的方法,实际上我从源代码中学到了很多东西。所以,非常感谢您创建shinyjs :) (2认同)