如何仅在单击提交按钮时才更新闪亮的应用程序?时才、单击、应用程序、按钮

2023-09-03 14:09:00 作者:被撕碎了的回忆

我想创建一个仅在单击提交按钮时更新的shiny-app。我在网上找了很久才找到我的问题的答案,发现了这个非常有用的网页:(https://shiny.rstudio.com/articles/action-buttons.html)。我理解代码并且能够重现它,但是当我对我自己的代码使用相同的逻辑时,更新按钮毫无用处,什么也做不了。

以下是我的代码:

library(shiny)
library(leaflet)


ui <- fluidPage(

  checkboxGroupInput(
    inputId = "selected_dates",
    label = "Choose the year",
    choices = c("20","19","18","17","16","15"),
    selected = c("20","19","18","17","16","15")
  ),

  actionButton("go", "Update"),
  leafletOutput("map")

)

server <- function(input, output) {

  dates <- eventReactive(input$go, {
    input$years
  })

  output$map <- renderLeaflet({


    m <- addTiles(setView(leaflet(), lng = -73.731368, lat = 45.531368, zoom = 10))
    addCircles(m, data = vol_voiture[vol_voiture$Year %in% input$years,], lat = ~ LATITUDE, lng = ~ LONGITUDE, popup = ~ DATE, opacity = 0.5, weight = 0.1)

  })
}

shinyApp(ui, server)

只是澄清一下,vol_voiture是我的dataframe。我知道这可能只是一个简单的错误或我的部分的误解,但我已经为此工作了很多小时,似乎找不到解决方案。非常感谢您的帮助!

推荐答案

windows8怎么关闭自动更新

您没有在任何地方使用eventReactive函数。我会尝试将renderLeaflet调用中的input$years替换为dates()

library(shiny)
library(leaflet)


ui <- fluidPage(

  checkboxGroupInput(
    inputId = "selected_dates",
    label = "Choose the year",
    choices = c("20","19","18","17","16","15"),
    selected = c("20","19","18","17","16","15")
  ),

  actionButton("go", "Update"),
  leafletOutput("map")

)

server <- function(input, output) {

  dates <- eventReactive(input$go, {
    input$years
  })

  output$map <- renderLeaflet({

    m <- addTiles(setView(leaflet(), lng = -73.731368, lat = 45.531368, zoom = 10))
    addCircles(m, data = vol_voiture[vol_voiture$Year %in% dates(),], lat = ~ LATITUDE, lng = ~ LONGITUDE, popup = ~ DATE, opacity = 0.5, weight = 0.1)

  })
}

shinyApp(ui, server)

希望这能有所帮助!!