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

38

如果用户点击特定的tabPanel,是否可以执行某个操作?

例如,如果用户点击tabPanel("A", ...),则显示一个弹出窗口,其中包含信息You are viewing tab "A"

2个回答

37
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.")
  )

))

服务器.R

library(shiny)

shinyServer(function(input, output) {

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

})

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


3
示例不起作用... values未定义!您是指input$tabs而不是values$tabValue吗? - user2329215
抱歉,那是我之前回答的版本遗留下来的。我已经进行了更正。 - Eric
非常感谢您提供这个清晰的答案。它帮助我解决了问题。 - Andrii

6

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接