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
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)