我正在开发一个涉及 Twitter 数据获取的 R Shiny 应用程序。由于该过程可能会持续一段时间,我想表明应用程序正忙于做某事,因此用户不会认为页面被冻结。
就我而言,我以这种方式存储一些反应值:
rv <- reactiveValues()
rv$analysisStarted <- FALSE
rv$analysisAvailable <- FALSE
然后,在 UI 中,用户必须按下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"
}
})
我注意到的是,当分析开始时,标签变为灰色,但在过程结束之前它不会更新文本。
此功能的正确编码应该是什么?是否可以在 observeEvent 中重绘文本输出?是否可以使用原始闪亮库或需要我也在使用的 shinyjs?
任何帮助将不胜感激。