【问题标题】:Collapse sidebarpanel in Shiny for a particular tab [duplicate]在 Shiny 中折叠特定选项卡的侧边栏面板 [重复]
【发布时间】:2017-07-09 02:05:57
【问题描述】:

我有一个闪亮的应用程序,它带有一个侧边栏面板和一个带有多个选项卡的主面板。我想折叠某些选项卡的侧边栏面板并为某些选项卡显示它。

我该怎么做?谢谢。

【问题讨论】:

  • 我不想使用操作按钮来折叠侧边栏。因此,如果用户在 tab1 上,则显示侧边栏面板。如果用户转到 tab2,折叠/隐藏侧边栏面板。
  • 检查用户正在使用哪个标签:if(input$tabs == "tabname")

标签: r shiny


【解决方案1】:

我不确定您是否真的需要“隐藏”或只为某些选项卡指定侧边栏,而有些则不需要(请参阅 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)  

【讨论】:

  • 我确实需要隐藏。这完美地工作。谢谢!
  • 其实我从没想过每个标签都有单独的侧边栏和主面板。
  • 嗯,是的,在重复自己和可以为每个标签自定义侧边栏之间进行权衡:-)
  • 嘿,我实际上是想在同一个闪亮的应用程序中放置一个操作按钮,但它似乎不起作用。这是代码-observeEvent(input$submit2, { updateNavbarPage(session, "Tabs",selected = "Tab1") }) 这里的“Tabs”是我的导航栏ID。当我在绘图上使用 click 命令跨选项卡移动时,它正在工作。
  • 评论区有点难讨论,能不能开个新问题
猜你喜欢
  • 2016-11-24
  • 2013-11-03
  • 2020-08-09
  • 2021-09-23
  • 1970-01-01
  • 2018-01-25
  • 2018-03-15
  • 2020-07-22
  • 1970-01-01
相关资源
最近更新 更多