3 votes

Shiny - Mise à jour de l'interface utilisateur après un appel API dans observeEvent

Mon interface utilisateur possède un bouton actif et chaque fois que l'utilisateur appuie dessus, la méthode observeEvent suivante appelle une API et renvoie une valeur numérique.

observeEvent(input$submit, {

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

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

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

Le problème est que je veux afficher le résultat (variable "predicted") dans une infoBox dans l'interface utilisateur, mais seulement lorsque la variable "predicted" a une valeur. Par conséquent, cette infoBox doit être cachée jusqu'à ce que l'utilisateur appuie sur le bouton la première fois.

Quel type de sortie dois-je mettre dans l'interface utilisateur ? Comment "predicted" pourrait se comporter comme input$value ?

Merci beaucoup d'avance.

EDIT

La solution consistait à utiliser la fonction reactiveValues() lors de l'appel de l'API :

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

Et ensuite, en utilisant la fonction renderInfoBox() sur la base de la valeur précédente.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X