我有一个闪亮的应用程序,在navbarPage中的tabPanel内有一个mainPanel和一个sidebarPanel.我需要一个隐藏sidebarPanel的选项,类似于:隐藏在shinydashboard中的侧边栏和https://github.com/daattali/shinyjs/issues/43.
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)
Run Code Online (Sandbox Code Playgroud)
希望有人可以帮忙:)
我已修改您的代码以隐藏并显示侧边栏.要创建idfor,sidebarPanel我已将其包含在div中并给予它id = Sidebar.为了显示和隐藏侧栏,我使用了shinyjs函数show和hideid作为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)
Run Code Online (Sandbox Code Playgroud)
希望能帮助到你!
之前评论中建议的切换选项的示例。
library(shiny)
library(shinyjs)
ui <- fluidPage(
useShinyjs(),
navbarPage("",
tabPanel("tab",
div( id ="Sidebar",sidebarPanel(
)),
mainPanel(actionButton("toggleSidebar", "Toggle sidebar")
)
)
)
)
server <-function(input, output, session) {
observeEvent(input$toggleSidebar, {
shinyjs::toggle(id = "Sidebar")
})
}
shinyApp(ui, server)
Run Code Online (Sandbox Code Playgroud)