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

mch*_*hen 33 r shiny

如果用户点击特定内容,是否可以执行操作tabPanel

例如,如果用户点击tabPanel("A", ...)然后显示弹出说法You are viewing tab "A".

Eri*_*ric 31

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

))
Run Code Online (Sandbox Code Playgroud)

server.R

library(shiny)

shinyServer(function(input, output) {

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

})
Run Code Online (Sandbox Code Playgroud)

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

  • 示例不起作用...未定义值!你的意思是输入$ tabs而不是值$ tabValue? (2认同)

Sta*_*tCC 6

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