CommencerCommencez gratuitement

Vérifier qu’un utilisateur a fait une sélection

Comme vu dans la vidéo, même s’il est souvent recommandé de définir une valeur par défaut pour vos sélecteurs, si vous choisissez de ne pas le faire, vous pouvez afficher un message d’erreur personnalisé pour indiquer aux utilisateurs ce qu’ils doivent faire afin que l’application fonctionne correctement.

Nous avons constaté dans le dernier exercice que, sans valeur par défaut pour pickerInput(), le graphique reste simplement vide. Plutôt qu’un graphique vide, vous allez ici afficher un message d’erreur personnalisé demandant aux utilisateurs d’effectuer la sélection nécessaire pour faire fonctionner l’application.

Cet exercice fait partie du cours

<cours>Créer des applications web avec Shiny en R</cours>
Voir le cours

Instructions de l’exercice

  • Ajoutez un message d’erreur personnalisé qui s’affichera par défaut pour indiquer aux utilisateurs qu’ils doivent choisir une entrée pour la santé mentale ou physique.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

ui <- fluidPage(
  titlePanel("2014 Mental Health in Tech Survey"),
  sidebarPanel(
    sliderTextInput(
      inputId = "work_interfere",
      label = "If you have a mental health condition, do you feel that it interferes with your work?", 
      grid = TRUE,
      force_edges = TRUE,
      choices = c("Never", "Rarely", "Sometimes", "Often")
    ),
    checkboxGroupInput(
      inputId = "mental_health_consequence",
      label = "Do you think that discussing a mental health issue with your employer would have negative consequences?", 
      choices = c("Maybe", "Yes", "No"),
      selected = "Maybe"
    ),
    pickerInput(
      inputId = "mental_vs_physical",
      label = "Do you feel that your employer takes mental health as seriously as physical health?", 
      choices = c("Don't Know", "No", "Yes"),
      multiple = TRUE
    )    
  ),
  mainPanel(
    plotOutput("age")  
  )
)

server <- function(input, output, session) {
  output$age <- renderPlot({
    # MODIFY CODE BELOW: Add validation that user selected a 3rd input
    
    
    
    
    
    

    mental_health_survey %>%
      filter(
        work_interfere == input$work_interfere,
        mental_health_consequence %in% input$mental_health_consequence,
        mental_vs_physical %in% input$mental_vs_physical
      ) %>%
      ggplot(aes(Age)) +
      geom_histogram()
  })
}

shinyApp(ui, server)
Modifier et exécuter le code