Я новичок в Shiny и столкнулся с проблемой, на которую не могу найти ответ.По сути, у меня есть приложение Shiny, которое выполняет несколько длительных вычислений в цикле, и я хочу, чтобы оно выводило «отчет о ходе работы» каждые несколько итераций.Однако, даже если я переназначаю свою реактивную переменную в цикле, выходные данные не обновляются, пока цикл (или вся функция?) Не завершится.
Вот упрощенный тестовый пример того, что я имею в виду:
library(shiny)
# Basic interface
ui <- fluidPage(
actionButton("run", "Run"),
textOutput("textbox")
)
# Basic server with loop
server <- function(input, output) {
textvals=reactiveValues(a=0)
observeEvent(input$run, {
for(i in 1:10){
textvals$a=i # Expect output to update here, but doesn't
Sys.sleep(0.1) # Slight pause so isn't instantaneous
}
})
output$textbox <- renderText({
textvals$a
})
}
# Run the application
shinyApp(ui = ui, server = server)
Я ожидал бы, что дисплей будет обновлять 1, 2, 3, ... 10 по мере выполнения цикла.Вместо этого он просто переходит прямо с 0 на 10. Как я могу принудительно выполнить обновление в цикле?
Спасибо.