R语言 我可以在条件面板中引用tabItem吗?

7dl7o3gd  于 2023-09-27  发布在  其他
关注(0)|答案(1)|浏览(88)

我目前正在使用库bs4Dash,在我的UI中,我有这样的东西:
tabItem( tabName = "one", ), tabItem( tabName = "two", ))
在侧栏中,我想添加一个条件面板,它有下一个条件:如果我看到标签“一”,显示h2(“你好”)
conditionalPanel( condition = 'tabItem == "one"', h2("Hello"))
有什么方法可以在这个条件面板中引用tabItem吗?主要的想法是在点击不同的标签时在侧边栏中有不同的文本。如果没有,还有其他方法可以做到这一点吗?
我尝试了'input.all_panels,因为这就是它与其他闪亮的R应用程序的工作方式。

bis0qfac

bis0qfac1#

您需要给予sidebarMenuid参数,以便将其用作可在conditionalPanel中使用的input

library(shiny)
library(bs4Dash)

ui <- bs4Dash::dashboardPage(
  
  dashboardHeader(title = "Simple Dashboard"),
  
  dashboardSidebar(
    
    sidebarMenu(
      id = "tabs", # <- This `id` is important
      menuItem("Tab 1", tabName = "one"),
      menuItem("Tab 2", tabName = "two")
    ),
    
    conditionalPanel("input.tabs === 'two'", # <- we use the `id` here!
      selectInput("variable", "Variable:",
                c("Cylinders" = "cyl",
                  "Transmission" = "am",
                  "Gears" = "gear")))
    
  ),
  
  dashboardBody(
    
    tabItems(
      
      tabItem("one",
              "This is the content of Tab 1."
               ),
      
      tabItem("two",
              "This is the content of Tab 2."
              )
    )
  )
)

server <- function(input, output) {
  
}

shinyApp(ui, server)

相关问题