ÎncepețiÎncepe gratuit

Validează că utilizatorul a făcut o selecție

Reține din video că, deși este o practică bună să selectezi o valoare implicită pentru intrările de tip selector, dacă aceasta lipsește, poți afișa un mesaj de eroare personalizat care îi indică utilizatorului ce trebuie să facă pentru ca aplicația să funcționeze corect.

Am văzut în exercițiul anterior că, fără o valoare implicită pentru pickerInput(), graficul rămâne pur și simplu gol. În loc de un grafic gol, în acest exercițiu vei afișa utilizatorilor un mesaj de eroare personalizat, care îi îndrumă să facă selecția necesară pentru a porni aplicația.

Acest exercițiu face parte din cursul

Crearea aplicațiilor web cu Shiny în R

Vezi cursul

Instrucțiuni pentru exercițiu

  • Adaugă un mesaj de eroare personalizat care să apară implicit, informând utilizatorii că trebuie să selecteze o opțiune pentru sănătatea mintală față de cea fizică.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

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)
Editează și rulează codul