Un court article sur un petit truc que j’utilise pendant le développement de Shiny Apps. (Spoiler : rien de révolutionnaire)
Un browser() n’importe où, n’importe quand
La première chose à faire est d’insérer un actionButton, et un browser() dans la commande observeEvent() surveillant ce bouton. C’est une approche standard : à tout moment, il suffit d’appuyer sur ce bouton, et vous êtes à l’intérieur de l’Application Shiny — alors, vous pouvez voir la valeur des reactives et exécuter les éléments réactifs, accédant aux valeurs qu’ils ont au moment où vous avez appuyé sur ce bouton.
Cette approche fonctionne, et elle est robuste. Mais voici le problème : c’est un peu lourd d’ajouter/supprimer ou commenter/décommenter ce bouton lorsque vous voulez afficher l’app, faire des captures d’écran, ou simplement supprimer ce bouton pour avoir une vue complète de l’application.
Voici donc un petit truc qui utilise JavaScript pour cacher le bouton, et le montrer en utilisant la console JavaScript de votre navigateur web :
# Dans l'UI:
actionButton("browser", "browser"),
tags$script("$('#browser').hide();")
# Dans le server
observeEvent(input$browser,{
browser()
})
# Et pour voir le bouton, direction le
# navigateur web, ouvrez la console JS,
# et entrez:
$('#browser').show();
Comme je l’ai dit, rien de révolutionnaire ici, juste une petite astuce 😉
Ps : n’oubliez pas de retirer ce bouton lorsque vous enverrez l’app en production.