为什么在 shinydashboard 中没有开始计算闪亮的无功值

why shiny reactive value didn't start to calculate in shinydashboard

我正在编写一个包含多个页面的 shinydashboard。在首页用户上传一些数据,根据用户输入有几个 reactive() 表达式。其中一个表达式需要超过 1 分钟的时间来计算,但它的输出在最后一页。

我希望一旦用户上传了数据,所有的反应表达式都应该被计算出来。因此,当用户在前几页工作时,最后一个耗时的可以在后台计算,并且当用户最终移动到最后一页时,用户等待时间会更少。

然而据我观察,情况并非如此。最后一个表达式似乎只有在激活最后一页时才开始计算。

如果理论上我的期望是可能的,我将制作一个可重现的小例子。

你是对的,反应元素只有在页面上显示时才会计算,你可以强制计算:

output$myplot <- renderPlot({
  plot(1)
})

outputOptions(output, "myplot", suspendWhenHidden = FALSE)

但它可能会减慢您的应用程序,因为 R 一次只能计算一件事。