有光泽的 - 如何禁用dashboardHeader

时间:2016-09-12 08:49:28

标签: shiny dashboard

我是新手。当我创建项目时,我需要隐藏服务器端的dashboardHeader。

在shinydashboard网站上,我找到了代码dashboardHeader(disable = TRUE)。我尝试了这个,但它没有用。

但是,我尝试使用shinyjs来解决问题。

    <code>

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

    ui <- dashboardPage(
          dashboardHeader(
                extendShinyjs(text = 'shinyjs.hidehead = function(params) {           
                $("header").addClass("sidebar-collapse") }'),
                          ),
          dashboardSidebar(),
          dashboardBody(
              actionButton("button","hide_header",width = 4 )
                       )
                       )

    server <- function(input, output) {
         observeEvent(input$button, {
                       js$hidehead()           
                  })}

   shinyApp(ui, server)</code>

我想你已经知道了,它仍然没有用。

我的案例的任何想法?

1 个答案:

答案 0 :(得分:3)

Shinyjs是一个很棒的图书馆。您的代码存在的问题是首先需要使用shinyjs初始化shinyjs::useShinyjs()并将其放在dashboarBody函数中。此外,要隐藏/显示标题,您不需要添加实际用于侧边栏的类"sidebar-collapse"。您只需添加style="display:none"即可隐藏标题,并将其删除以显示标题。下面是您修改的代码,用于隐藏/显示标题。使用的JS代码非常简单,它接收直接从js$hidehead()函数添加的参数。

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

ui <- dashboardPage(
        dashboardHeader(),
        dashboardSidebar(),
        dashboardBody(
          # initialize shinyjs
          shinyjs::useShinyjs(),
          # add custom JS code
          extendShinyjs(text = "shinyjs.hidehead = function(parm){
                                    $('header').css('display', parm);
                                }"),
          actionButton("button","hide header"),
          actionButton("button2","show header")
        )
      )

server <- function(input, output) {
  observeEvent(input$button, {
    js$hidehead('none')           
  })
  observeEvent(input$button2, {
    js$hidehead('')           
  })
}

shinyApp(ui, server)