2017-02-19 90 views
1

我有一个闪亮的应用程序,带有多个标签的侧边栏和主面板。我想折叠一些标签的sidebarpanel并显示一些标签。在特定标签的Shiny中折叠sidebarpanel

我该怎么办?谢谢。

+2

http://stackoverflow.com/questions/42159804/how-to-collapse-sidebarpanel-in-shiny-app – TinaW

+0

我不想使用操作按钮折叠边栏。所以,如果用户在tab1上,请显示侧栏面板。如果用户转到tab2,请折叠/隐藏侧栏面板。 – user1463242

+0

检查用户使用哪个标签:'if(input $ tabs ==“tabname”)' – BigDataScientist

回答

2

我真的不确定你真的需要“隐藏”,或者只是为某些标签指定一个侧栏,并且对于某些不需要(请参阅ui部分)。 如果您需要隐藏侧边栏,请参阅(注释)的服务器部分。

library(shiny) 
library(shinyjs) 

ui <- fluidPage(
    useShinyjs(), 
    navbarPage("", 
      tabPanel("tab", 
         div(id ="Sidebar",sidebarPanel(
         actionButton("showSidebar", "I am tab sidebar content") 
        )), 


         mainPanel(actionButton("showSidebar", "I am tab main content") 
        ) 
      ), 
      tabPanel("tab2", 
         div(id ="Sidebar2",sidebarPanel(
         actionButton("showSidebar", "I am tab2 sidebar content") 
        )), 


         mainPanel(actionButton("showSidebar", "I am tab2 main content") 
        ) 
      ), 
      tabPanel("tab3", 
         mainPanel(actionButton("showSidebar", "I dont have a sidebar") 
        ) 
      ) 

) 
) 

server <-function(input, output, session) { 
    # In case you need to hide them for some reason 
    # observeEvent(input$tabs == "tab", { 
    # shinyjs::hide(id = "Sidebar") 
    # }) 
} 

shinyApp(ui, server) 
+1

我确实需要隐藏。这工作完美。谢谢! – user1463242

+1

其实我从来没有想过每个标签都有单独的侧边栏和主面板。 – user1463242

+0

嗯,是一种权衡重复自己,并有可能定制你的边栏每个选项卡:-) – BigDataScientist