2016-04-28 7 views
1

Ich versuche, ein bestimmtes TabPanel dynamisch in der einfach Shiny App auszuwählen. Das Skript von App ist wie folgt:Wie wähle ich ein bestimmtes TabPanel in Shiny

ui.r

library(shiny) 
shinyUI(fluidPage(

    titlePanel("SCORE CARD DEVELOPMENT PLATFORM"), 
    navbarPage("ScoreDevApp", 
     tabPanel("Settings", 
        fluidRow(column(2, 
            actionButton("goButton_service", "Load saved parameters",width=200) 
           ) 
         ) 
     ), 
     tabPanel("Download & Binning input data") 
     ) 
) 
) 

server.r:

library(shiny) 

shinyServer(function(input, output, session) { 
    #load saved parameters 
    observeEvent(input$goButton_service, { 
    updateTabsetPanel(session, "ScoreDevApp", selected = "Download & Binning input data") 
}) 
}) 

Die Idee ist, den Knopf "goButton_service" drücken und Wählen Sie die Registerkarte "Download & Binning Eingabedaten".

Ich habe das Beispiel von hier R Shiny switch tabPanel when selectInput value changes verwendet.

Allerdings ist das TabPanel nicht ausgewählt. Ich wäre sehr dankbar für Ihre Hilfe :-)

Antwort

2

Problem ist, dass Sie keine tabsetPanel in Ihrer UI haben (die die Eltern der beiden TabPanel sein sollte). Im Moment verwenden Sie updateTabsetPanel, aber das Ziel ist navbarPage.

Arbeitslösung unten. Es gab zwei Probleme: navbarPage ein id braucht, und auch gab es einen zusätzlichen Platz in server.R selected (zwischen Binning und input`

ui.R

library(shiny) 
shinyUI(fluidPage(

    titlePanel("SCORE CARD DEVELOPMENT PLATFORM"), 
    navbarPage("ScoreDevApp", 
       tabPanel("Settings", 
         fluidRow(column(2, 
             actionButton("goButton_service", "Load saved parameters",width=200) 
         ) 
         ) 
       ), 
       tabPanel("Download & Binning input data"), 
       id="ScoreDevApp" 
    ) 
) 
) 

server.R

Bibliothek (glänzend)

shinyServer(function(input, output, session) { 
    #load saved parameters 
    observeEvent(input$goButton_service, { 
     updateNavbarPage(session, "ScoreDevApp", selected = "Download & Binning input data") 
    }) 
}) 
+0

dank für einen Kommentar. ich habe Ihren Hinweis berücksichtigt. ich verwendet habe "updateNavbarPage (session "ScoreDevApp", selected = "Download & Binning Eingabedaten") '. Aber es gibt immer noch keine Ergebnisse - das ausgewählte Panel ist nicht ausgewählt. P.S .: http://shiny.rstudio.com/reference/shiny/latest/updateTabsetPanel.html wird gesagt, dass 'updateNavbarPage' verwendet wird, um das angegebene Panel auszuwählen. –

+0

Aktualisierte meine Antwort mit funktionierender Lösung. –

+0

Ihre Lösung funktioniert :-) vielen Dank :-) –

Verwandte Themen