我如何使用将来的功能
#Final Report output
output$repTable <- renderFormattable({
future({getFinalReportData()}) %...>% {
formattable()
}
})
使用上面的代码将导致以下错误:
警告:UseMethod中出现错误:'as.htmlwidget'没有适用的方法 应用于“ promise”类的对象 96:formattable :: as.html小部件 95:功能 82:origRenderFunc 81:输出$ repTable 1:runApp
未处理的承诺错误:如果没有激活,则不允许进行操作 反应性上下文。 (您尝试做只能做的事情 从反应性表达式或观察者内部。)
答案 0 :(得分:1)
您不能在以后的调用(check this article)中添加反应式表达式/值。
除了所有期货面临的约束之外,Shiny还有另外一个约束:不能从期货中读取反应性值和反应性表达式。每当读取无功值/表达式时,都会在后台进行副作用,以便当无功值/表达式变为无效时可以通知当前正在执行的观察者或无功表达式。如果在一个过程中创建了反应性值/表达式,但在另一个过程中进行了读取,则将无法通知读者有关无效的信息。
您可以做的是首先将反应表达式输出绑定到变量,并在以后的调用中使用它:
#Final Report output
output$repTable <- renderFormattable({
data <- getFinalReportData()
future(data) %...>% formattable()
})