2017-02-10 91 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) 

希望它有幫助!

相關問題