【问题标题】:How to implement future function in R-Shiny如何在 R-Shiny 中实现未来功能
【发布时间】:2019-10-01 02:49:40
【问题描述】:

如何使用future函数

  #Final Report output
  output$repTable <- renderFormattable({
    future({getFinalReportData()}) %...>%   {
      formattable()
    }
  })

使用上面的代码会导致以下错误:

警告:UseMethod 中的错误:“as.htmlwidget”没有适用的方法 应用于“promise”类的对象 96: 格式化::as.htmlwidget 95:功能 82:原始渲染函数 81: 输出$repTable 1:运行应用程序

未处理的承诺错误:在没有活动的情况下不允许操作 反应式上下文。 (你试图做一些只能做的事情 从反应式表达式或观察者内部。)

【问题讨论】:

    标签: r shiny promise future


    【解决方案1】:

    您不能在以后的调用中添加反应式表达式/值 (check this article)。

    除了所有期货都面临的限制之外,Shiny 还有一个额外的限制:无法从未来中读取反应式值和反应式表达式。每当读取响应式值/表达式时,都会在后台执行副作用,以便在响应式值/表达式失效时可以通知当前正在执行的观察者或响应式表达式。如果一个反应式值/表达式在一个进程中创建,但在另一个进程中读取,则无法通知读者无效。

    您可以做的是首先将反应式表达式输出绑定到一个变量,并在以后的调用中使用它:

     #Final Report output
     output$repTable <- renderFormattable({
        data <- getFinalReportData()
        future(data) %...>% formattable()
     })
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-22
      • 2021-09-04
      • 1970-01-01
      • 2021-11-29
      • 2015-07-30
      • 1970-01-01
      • 2018-06-24
      • 1970-01-01
      相关资源
      最近更新 更多