2017-02-19 16 views
1

私は、サイドバーパネルと複数のタブを持つメインパネルを備えた光沢のあるアプリを持っています。私はいくつかのタブのサイドバーパネルを折りたたみ、いくつかのタブのためにそれを示したいと思います。特定のタブでシャイニーのサイドバーパネルを折りたたむ

どうすればいいですか?ありがとう。

+2

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

+0

私はサイドバーを折りたたむにアクションボタンを使用する必要はありません。したがって、ユーザーがtab1上にいる場合は、サイドバーパネルを表示します。ユーザーがタブ2に移動すると、サイドバーパネルが折りたたまれ/非表示になります。 – user1463242

+0

ユーザが使用しているタブを確認するには 'if(input $ tabs ==" tabname ")' – BigDataScientist

答えて

2

私は実際にあなたが本当に "隠す"か、またはいくつかのタブのためにサイドバーを指定する必要はないと確信していません。 サイドバーを非表示にする必要がある場合は、(コメント付きの)サーバー部分を参照してください。

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