Bắt đầu ngayBắt đầu miễn phí

Xả súng hàng loạt: hiển thị trợ giúp

Luôn hữu ích khi cung cấp cho người dùng thêm bối cảnh về ứng dụng của bạn. Một cách để làm điều này là thêm nút About vào ứng dụng và hiển thị phần bối cảnh dưới dạng hộp thoại modal.

Đó chính là những gì bạn sẽ làm trong bài tập này. Ứng dụng của bạn sẽ giống với hình trong ảnh chụp màn hình khi người dùng bấm nút "About".

An app displaying red circles for each mass shooting incident with details appearing on clicking the circle

Hãy nhớ rằng bạn có thể hiển thị chữ 'About' trong một hộp thoại modal bằng đoạn mã:

showModal(modalDialog("About"))

Bài tập này là một phần của khóa học

Xây dựng ứng dụng web với Shiny trong R

Xem khóa học

Hướng dẫn bài tập

  • UI: Thêm một nút thao tác tên show_about.
  • Server: Dùng observeEvent để kích hoạt hiển thị hộp thoại modal với showModal(modalDialog(text_about, title = 'About')).

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

ui <- bootstrapPage(
  theme = shinythemes::shinytheme('simplex'),
  leaflet::leafletOutput('map', width = '100%', height = '100%'),
  absolutePanel(top = 10, right = 10, id = 'controls',
    sliderInput('nb_fatalities', 'Minimum Fatalities', 1, 40, 10),
    dateRangeInput(
      'date_range', 'Select Date', "2010-01-01", "2019-12-01"
    ),
    # CODE BELOW: Add an action button named show_about
    
  ),
  tags$style(type = "text/css", "
    html, body {width:100%;height:100%}     
    #controls{background-color:white;padding:20px;}
  ")
)

server <- function(input, output, session) {
  # CODE BELOW: Use observeEvent to display a modal dialog
  # with the help text stored in text_about.

  
  
  output$map <- leaflet::renderLeaflet({
    mass_shootings %>% 
      filter(
        date >= input$date_range[1],
        date <= input$date_range[2],
        fatalities >= input$nb_fatalities
      ) %>% 
      leaflet() %>% 
      setView( -98.58, 39.82, zoom = 5) %>% 
      addTiles() %>% 
      addCircleMarkers(
        popup = ~ summary, radius = ~ sqrt(fatalities)*3,
        fillColor = 'red', color = 'red', weight = 1
      )
  })
}

shinyApp(ui, server)
Chỉnh sửa và Chạy Mã