2017-02-10 92 views
2

我有一个闪亮的应用程序与在navbarPage中的tabPanel内的mainPanel和sidebarPanel。我需要一个隐藏sidebarPanel的选项:Hide sidebar in default in shinydashboardhttps://github.com/daattali/shinyjs/issues/43如何折叠闪亮的应用程序中的sidebarPanel?

一个actionButton应该控制sidebarPanel是显示还是折叠。

这是代码:

library(shiny) 
library(shinyjs) 

ui <- fluidPage(
    navbarPage("", 
      tabPanel("tab", 
         sidebarPanel(
         useShinyjs() 
        ), 

         mainPanel(actionButton("showSidebar", "Show sidebar"), 
           actionButton("hideSidebar", "Hide sidebar") 
        ) 
      ) 
) 
) 

server <-function(input, output, session) { 
    observeEvent(input$showSidebar, { 
    shinyjs::removeClass(selector = "body", class = "sidebarPanel-collapse") 
    }) 
    observeEvent(input$hideSidebar, { 
    shinyjs::addClass(selector = "body", class = "sidebarPanel-collapse") 
    }) 
} 

shinyApp(ui, server) 

希望有人能帮助:)

回答

3

我已经修改了你的代码隐藏和显示工具条。若要为sidebarPanel创建id,我已将它包含在div内并将它指定为id = Sidebar。要显示和隐藏侧栏,我已使用shinyjs函数showhide,其中id为Sidebar

library(shiny) 
library(shinyjs) 

ui <- fluidPage(
    useShinyjs(), 
    navbarPage("", 
      tabPanel("tab", 
         div(id ="Sidebar",sidebarPanel(
        )), 


         mainPanel(actionButton("showSidebar", "Show sidebar"), 
           actionButton("hideSidebar", "Hide sidebar") 
        ) 
      ) 
) 
) 

server <-function(input, output, session) { 
    observeEvent(input$showSidebar, { 
    shinyjs::show(id = "Sidebar") 
    }) 
    observeEvent(input$hideSidebar, { 
    shinyjs::hide(id = "Sidebar") 
    }) 
} 

shinyApp(ui, server) 

希望它有帮助!

相关问题