听闪亮的反应()失效?

时间:2017-08-03 08:14:36

标签: r shiny

是否有一个暴露的(甚至可能是非暴露的)闪亮功能可以告诉我何时反应无效?示例草案:

ui.R

selectInput('select', ...)

server.R

myfunc <- reactive({ ... input$select ... })

output$listen <- textOutput({
   valid_flag <- ???(myfunc)
   paste('This function is', valid_flag)
})

???()函数会在反应无效或无效的情况下向我提供信息。

1 个答案:

答案 0 :(得分:3)

在浏览闪亮的包裹代码后,我可能真的找到了解决方案。类reactive的对象是S3对象,但反应机制在attr(object, "observable")中是“隐藏”的,即R6类。上面我的问题的解决方案是:

myfunc <- reactive({ ... input$select ... })

output$listen <- textOutput({
   valid_flag <- attr(myfunc, "observable")$.invalidated
   paste('This function is invalidated:', valid_flag)
})

示例可能不是最好的(我仍然不确定attr(myfunc, "observable")是否充当被动对象,但我在不同的上下文中使用它 - 不是以被动方式打印而是通知关于反应堆栈状态的其他代码部分。