【发布时间】:2023-02-25 05:31:55
【问题描述】:
我正在尝试构建一个仪表板来跟踪我在 bugzilla 中的组错误。检索此数据的查询很慢,所以我只想检索已更改的错误并更新本地副本。
我有一个函数“get_bugzilla”,它返回所有内容,或者如果提供了时间戳,则在该时间戳之后所有内容都发生了变化。
我目前以反应方式使用它的最佳尝试是:
poll<-reactiveTimer(intervalMs = 10000)
ckbdata<-reactive({get_bugzilla()})
ckbdata<-reactive({
poll()
wip<-ckbdata()
new<-get_bugzilla(max(wip[['last_change_time']]))
if(length(new)>0){
wip<-wip[!(id %in% new[['id']]),]
wip<-rbind(wip,new)
}
wip
})
这会产生错误“评估嵌套太深:无限递归/选项(表达式=)?”,这是我担心的事情。但是我无法找到正确的方法。
【问题讨论】:
-
要更新仪表板的反应部分,我们使用
reactiveValues()或reactiveVal()而不是reactive()。为了展示如何实现这一点,我们需要一个可重现的示例(一个工作仪表板)。
标签: r shiny shiny-reactivity