Я разрабатываю приложение R Shiny, включающее получение данных из Twitter. Поскольку этот процесс может длиться какое-то время, я хотел бы указать, что приложение чем-то занято, поэтому пользователь не видит, что страница заморожена.
В моем случае я храню некоторые реактивные значения следующим образом:
rv <- reactiveValues()
rv$analysisStarted <- FALSE
rv$analysisAvailable <- FALSE
Затем в пользовательском интерфейсе пользователь должен нажать actionButton, чтобы начать обработку. Затем я хотел бы указать, где работает Сервер ...
observeEvent(input$analysisButton, {
rv$analysisStarted <- TRUE
rv$analysisAvailable <- FALSE
#Processing Twitter info...
rv$followersAnalysisStarted <- FALSE
rv$followersAnalysisAvailable <- TRUE
})
Если в UI.r я помещаю textOutput и создаю соответствующий метод вывода таким образом, он НЕ работает:
output$text <- renderText({
if (rv$analysisStarted) {
"Server is working..."
} else if (rv$analysisAvailable) {
"Your report is ready :) "
} else {
"Enter the data to search and press analysisButton"
}
})
Я заметил, что когда начинается анализ, метка становится серой, но текст не обновляется, пока процесс не завершится.
Какой должна быть правильная кодировка этой функции? Можно ли перерисовать текстовый вывод в ходе ObservationEvent? Возможно ли это с необработанной блестящей библиотекой или требуется shinyjs, который я тоже использую?
Любая помощь будет признательна.