2014-04-23 14 views
24

È possibile eseguire un'azione se l'utente fa clic su un particolare tabPanel?Come usare tabPanel come input in R Shiny?

Ad esempio, se l'utente fa clic su tabPanel("A", ...), visualizza un popup che indica You are viewing tab "A".

risposta

19

tabsetPanel() restituirà il valore assegnato allo tabPanel() attivo. Se si desidera solo per aggiornare un'altra uscita si potrebbe fare qualcosa di simile:

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

}) 

ma qualcosa di più complicato come la creazione di un pop-up richiederebbe probabilmente creazione di un osservatore e qualche ulteriore codifica personalizzata ...

+2

esempio non funziona ... i valori non sono definiti! Intendevi inserire schede $ invece di valori $ tabValue? L'esempio – Lalas

+1

non funziona, perché è 'valori $ tabValue'? –

+0

Mi spiace, è stato lasciato da una versione precedente della mia risposta. L'ho corretto – Eric

Problemi correlati