Я использую реактивные данные, совместно используемые картой и данными, которые фильтруются с помощью filter_slider.
Фильтрация с использованием карты или данных работает, однако при перемещении ползунка сначала он работает - он фильтруеткарта и данные по мере необходимости - затем неожиданно он сбрасывает фильтр сам при перерисовке карты и данных.
Я намеренно хочу, чтобы данные были реактивными внутри кода сервера в отличие от этот вопрос ,где данные находятся за пределами пользовательского интерфейса и сервера. Это потому, что я хочу, чтобы у каждого пользователя был свой набор данных при использовании приложения.
library(shiny)
library(crosstalk)
library(leaflet)
library(DT)
ui <- fluidPage(
# Create a filter input
uiOutput("filter_slider"),
bscols(leafletOutput("map"), DTOutput("table"))
)
server <- function(input,output) {
my_data <- reactive(quakes[sample(nrow(quakes), 100),])
shared_data <- SharedData$new(my_data)
output$filter_slider <- renderUI({
filter_slider("mag", "Magnitude", shared_data, column="mag", step=0.1, width=250)
})
output$map <- renderLeaflet({ leaflet(shared_data) %>% addTiles() %>% addMarkers()})
output$table <- renderDT({
datatable(shared_data, extensions="Scroller", style="bootstrap", class="compact", width="100%",
options=list(deferRender=TRUE, scrollY=300, scroller=TRUE))
}, server = FALSE)
}
shinyApp(ui = ui, server = server)