2016-07-07 11 views
0

Ich habe eine Shiny App, wo es zwei TabPanels in einem TabsetPanel gibt. Die Widgets in den tabPanels werden dynamisch basierend auf Werten in einem Datenrahmen (stager genannt) erstellt, der aus mySQL geladen wird. Die Eingabewerte (ausgewählt) für das zweite TabPanel-Kontrollkästchen werden nur initialisiert, wenn auf die Registerkarte geklickt wird, aber ich möchte, dass sie initialisiert werden, wenn die Shiny-App ausgeführt wird. Der Server und die UI-Code ist unten:initialisieren TabPanel Eingabewerte Shiny R

Server-Code (2. TabPanel):

output$Box4 = renderUI(checkboxGroupInput('showcols', 
              'Columns to show:', 
              names(stager2()), 
              selected = names(stager2()[c(1,6,10,11,14,15,18,19,20)]))) 

UI-Code (2 TabPanel):

tabPanel("Select Columns", 
      hr(), 
      uiOutput("Box4") 
) 

Alle Ideen, wie die Eingabewerte zu erhalten, initialisieren, wenn die App ausgeführt wird, sind sehr geschätzt.

Antwort

0

Haben Sie mit der observe Funktion überhaupt herum gespielt?

http://shiny.rstudio.com/reference/shiny/latest/observe.html

Ich persönlich habe es nicht für diese Art von Dingen verwendet, aber es kann hilfreich sein.

+0

Danke. Ich werde die Beobachtungsfunktion erforschen. In der Zwischenzeit war ich in der Lage, die Eingabewerte zu initialisieren, indem ich sie reaktiv machte und ein if sonst verwendete, um sie basierend darauf festzulegen, ob sie existierten. Um zu sehen, ob sie existierten, musste ich folgendes verwenden: if (is.character (input $ showcols). – RAC