2017-02-19 31 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