2016-04-28 15 views
3

Meine Benutzeroberfläche verfügt über einen activeButton. Wenn der Benutzer sie drückt, ruft die folgende Methode "observeEvent" eine API auf und gibt einen numerischen Wert zurück.Shiny - Aktualisieren der Benutzeroberfläche nach dem API-Aufruf in observeEvent

observeEvent(input$submit, { 

    url <- "http://my_ip/predict?" 
    value <- paste0('value=', input$value) 

    response <- POST(paste0(url,value)) 

    predicted <- as.numeric(content(response)) 
}) 

Das Problem ist, dass ich das Ergebnis angezeigt werden soll („vorhergesagt“ Variable) in einer InfoBox in der Benutzeroberfläche, sondern nur vorausgesagt, als einen Wert hat. Daher muss diese InfoBox ausgeblendet werden, bis der Benutzer die Taste zum ersten Mal drückt.

Welche Art von Ausgabe sollte ich in die UI ?. Wie könnte "vorhergesagt" sich wie Eingabe $ Wert verhalten ?.

Vielen Dank im Voraus.

EDIT

Die Lösung, die die Funktion reactiveValues() verwendet wurde, wenn die API-Aufruf:

reactiveValues <- reactiveValues() 
reactiveValues$predicted <- as.numeric(content(response)) 

Und dann mit der Funktion renderInfoBox() basierend auf dem vorherigen Wert.

+0

Werfen Sie einen Blick auf [shinyjs] (https://github.com/daattali/shinyjs) - um zu zeigen, und Elemente auszublenden. – SymbolixAU

+1

Verwenden Sie 'reactiveValues', um die Antwort hinzuzufügen. 'reactiveValues ​​$ vorhergesagt <- as.numeric (Inhalt (Antwort))' bind es dann an die 'infoBox'. http://www.inside-r.org/packages/cran/shiny/docs/reactiveValues ​​ –

+1

Es funktionierte mit @PorkChop-Lösung. Vielen Dank! –

Antwort

0

dies oben aus den Kommentaren zu aktualisieren:

Verwenden reactiveValues die Antwort, um es hinzuzufügen.

reactiveValues$predicted <- as.numeric(content(response))

dann binden sie an die infoBox

Verwandte Themen