Is it possible to perform an action if the user clicks into a particular tabPanel?

For instance, if the user clicks into tabPanel("A", ...) then display a popup saying You are viewing tab "A".

有帮助吗?

解决方案

tabsetPanel() will return the value assigned to the active tabPanel(). If you just want to update another output you could do something like this:

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, "\"")})

})

but something more complicated like creating a popup would probably require making an observer and some additional custom coding...

其他提示

If you are using shiny dashboard, input$tabBox_id will locate the active tab name. Refer to here: https://rstudio.github.io/shinydashboard/structure.html#tabbox

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top