Inizia subitoInizia gratis

Verifica che l’utente abbia effettuato una selezione

Ricorda dal video che, anche se spesso è buona norma selezionare un valore predefinito per gli input di selezione, se uno deve essere escluso, puoi mostrare agli utenti un messaggio di errore personalizzato che indichi chiaramente cosa fare per far funzionare correttamente l’app.

Nell’esercizio precedente abbiamo visto che, senza un valore predefinito per pickerInput(), il grafico risulta semplicemente vuoto. In questo esercizio, al posto di un grafico vuoto, mostrerai agli utenti un messaggio di errore personalizzato che dice loro di effettuare la selezione corretta necessaria per far funzionare l’app.

Questo esercizio fa parte del corso

Creare applicazioni web con Shiny in R

Visualizza corso

Istruzioni dell'esercizio

  • Aggiungi un messaggio di errore personalizzato che venga mostrato di default e informi gli utenti che devono selezionare un input per salute mentale rispetto a salute fisica.

esercizio interattivo pratico

Prova questo esercizio completando questo codice di esempio.

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)
Modifica ed esegui il codice