折扣(关闭)按钮单击时Shinydashboard的SidebarMenu菜单

时间:2017-11-16 16:42:36

标签: r shiny shinydashboard reactive shinyjs

我正在使用类似于下面的应用程序。我的输入面板位于侧栏下最初扩展的菜单下。我想折叠菜单并隐藏所有输入面板,以便我的侧边栏清洁。但它应该在我展开时​​出现(不是永久隐藏)。我尝试了以下解决方案,但它无法正常工作。请帮助我找到解决方案或任何替代方法。

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

ui <- dashboardPage(
  header = dashboardHeader(),
  sidebar = dashboardSidebar(
    sidebarMenu(
      menuItem(
        startExpanded = TRUE,
        "Menu 1",
        column(
          width = 12,
          actionButton("hideMe", label = "Collapse Me", icon = icon("close"))
        )
      )
    )
  ),
  body = dashboardBody()
)
server <- function(input, output, server){
  observeEvent(input$hideMe, {
    shinyjs::hide(selector = "ul.menu-open");
  })
}

runApp(shinyApp(ui, server))

1 个答案:

答案 0 :(得分:1)

您需要将 useShinyjs()添加到ui部分

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

ui <- dashboardPage(
        header = dashboardHeader(),
        sidebar = dashboardSidebar(
                useShinyjs(),
                sidebarMenu(
                        menuItem(
                                startExpanded = TRUE,
                                "Menu 1",
                                column(
                                        width = 12,
                                        actionButton("hideMe", label = "Collapse Me", icon = icon("close"))
                                )
                        )
                )
        ),
        body = dashboardBody()
)
server <- function(input, output, server){
        observeEvent(input$hideMe, {
                shinyjs::hide(selector = "ul.menu-open");
        })
}

runApp(shinyApp(ui, server))