Est-il possible d'effectuer une action si l'utilisateur clique sur une tabPanel
particulière?
Par exemple, si l'utilisateur clique sur tabPanel("A", ...)
, une fenêtre contextuelle disant You are viewing tab "A"
s'affiche.
tabsetPanel()
retournera la valeur assignée à la tabPanel()
active. Si vous voulez juste mettre à jour une autre sortie, vous pouvez faire quelque chose comme ceci:
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.")
)
))
serveur.R
library(shiny)
shinyServer(function(input, output) {
output$text <- renderText({paste0("You are viewing tab \"", input$tabs, "\"")})
})
mais quelque chose de plus compliqué, comme créer un popup, nécessiterait probablement de faire appel à un observateur et à un codage personnalisé supplémentaire ...
Si vous utilisez un tableau de bord brillant, input$tabBox_id
localisera le nom de l'onglet actif. Voir ici: https://rstudio.github.io/shinydashboard/structure.html#tabbox