Zacznij terazZacznij za darmo

Sprawdź, czy użytkownik dokonał wyboru

Jak pokazano w filmie, dobrą praktyką jest ustawianie domyślnej wartości dla pól wyboru. Jeśli jednak chcesz ją wykluczyć, możesz wyświetlić użytkownikowi niestandardowy komunikat błędu, który podpowie mu, co należy zrobić, aby aplikacja działała poprawnie.

W poprzednim ćwiczeniu widziałeś, że bez domyślnej wartości w pickerInput() wykres jest po prostu pusty. W tym ćwiczeniu zamiast pustego wykresu wyświetlisz użytkownikom niestandardowy komunikat z informacją o tym, jakiego wyboru należy dokonać.

To ćwiczenie jest częścią kursu

Tworzenie aplikacji internetowych z Shiny w R

Zobacz kurs

Instrukcje do ćwiczenia

  • Dodaj niestandardowy komunikat błędu, który będzie wyświetlany domyślnie i poinformuje użytkowników, aby wybrali dane dotyczące zdrowia psychicznego lub fizycznego.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

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)
Edytuj i uruchom kod