Ваш пример не воспроизводим, потому что нет кода, который загружает ваши данные (скорее всего, за пределами пользовательского интерфейса и серверной части). Тем не менее, я думаю, что одна проблема заключается в том, что нет кода, который обновляет входной объект выбора. «renderUI» имеет элементы пользовательского интерфейса, которые обычно отображаются при выполнении определенных условий; код в вашем примере не имеет условий.
Попробуйте что-то похожее на приведенное ниже вместо функции renderUI:
updateSelectInput(session, "camp",
choices = schoolchoices(),
selected = input$camp)
Также, если обновления на вашей карте все еще происходят слишком быстро, рассмотрите возможность использования функции isolate () в реактивном выражении school_choices. Вы можете даже изолировать все реактивы, кроме кнопки действия.
# From https://shiny.rstudio.com/articles/isolation.html
# The plot render function changes only when the "goButton" button changes, rather than every time the input slider "obs" changes
server <- function(input, output) {
output$distPlot <- renderPlot({
# Take a dependency on input$goButton
input$goButton
# Use isolate() to avoid dependency on input$obs
dist <- isolate(rnorm(input$obs))
hist(dist)
})
}
Можно генерировать временные URL к защищенным ресурсам на S3.
Посмотрите нижнюю часть S3 Подписывающиеся и Проходящие проверку подлинности Запросы REST