Une petite astuce pour débuger Shiny

Tags : astuces, shiny

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.


À propos de l'auteur

Colin Fay

Colin Fay

Data scientist & R Hacker


Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *


Also read