如何在R Shiny中使用tabPanel作为输入?

时间:2014-04-23 11:52:05

标签: r shiny

如果用户点击特定的tabPanel

,是否可以执行操作

例如,如果用户点击tabPanel("A", ...),则会显示一个说You are viewing tab "A"的弹出窗口。

2 个答案:

答案 0 :(得分:29)

tabsetPanel()将返回分配给有效tabPanel()的值。如果您只想更新另一个输出,可以执行以下操作:

ui.R

library(shiny)    

shinyUI(basicPage( 

  textOutput("text"),
      tabsetPanel(id = "tabs",
          tabPanel("Tab A", value = "A", "This is Tab A content"),
          tabPanel("Tab B", value = "B", "Here's some content for tab B.")
  )

))

server.R

library(shiny)

shinyServer(function(input, output) {

    output$text <- renderText({paste0("You are viewing tab \"", input$tabs, "\"")})

})

但是像创建弹出窗口这样复杂的东西可能需要制作一个观察者和一些额外的自定义编码...

答案 1 :(得分:2)

如果您使用闪亮的仪表板,input$tabBox_id将找到活动的选项卡名称。请参阅此处:https://rstudio.github.io/shinydashboard/structure.html#tabbox