我想渲染一个文本来通知用户任务将要运行,但似乎闪亮执行服务器中的所有代码然后它移动到UI。 这是一个例子:
Array
(
[0] => id
[1] => name
[2] => email
)
在上面的例子中,我从未看到“创建数据帧”,如何在执行其余代码之前首先呈现该文本。
答案 0 :(得分:1)
它不是最漂亮的,但是如果您可以使用输入来显示这样的状态消息,那么您可以传达正在发生的事情......
library(shiny)
ui <- fluidPage(
mainPanel(
textInput("notice", "Status", "creating a dataframe"),
textOutput("ptext")
)
)
server <- function(input, output, session) {
dat <- reactive({
Sys.sleep(3)
matrix(rnorm(10000), nrow = 10)
})
output$ptext <- renderText({
req(dat())
updateTextInput(session, "notice", value = "dataframe created !!")
return("hello world")
})
}
shinyApp(ui = ui, server = server)
(请注意session
添加到server
的参数,这是使用updateTextInput(session, ...)
所必需的。)
使用动态UI创建和删除或对象隐藏(可能使用shinyjs
)可能会变得更复杂,但这比我想象的要复杂得多。