質問

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