Я пытаюсь получить reactivePoll
внутри observe
по той причине, что мне нужно, чтобы он запускался только после того, как некоторые req
будут заполнены в моем приложении (в противном случае это может произойти сбой), а затем передайте егопеременная сеанса, для которой я использую reactiveValues
.По какой-то причине каждый раз, когда я выполняю изменение в переменной, похоже, что reactivePoll
создает собственную копию и начинает выполнять checkFunc больше, чем нужно.Минимальный пример:
library(shiny)
ui <- fluidPage(selectInput("x", "Change options", c(1, 2)))
server <- function(input, output, session) {
v <- reactiveValues()
observe({
print("obs")
req(input$x)
v$a <- reactivePoll(5000, session,
checkFunc = function() {
print("test")
input$x
}, valueFunc = function() {
print("value")
1
})
print(v$a())
})
}
shinyApp(ui, server)
Как видно, при изменении значения selectInput печать внутри функции проверки оценивается в n + 1 раз больше, чем раньше.