回答
有一个闪亮的“反应日志可视化”内置闪亮。它逐渐建立一个图表,显示各个反应节点如何相互依赖。运行后,其输出是这样的:在使用此工具
说明可以在这里找到:Reactive Log Visualizer
这是我对这个工具的注意事项:
- 已启用在shinyApp调用之前插入
options(shiny.reactlog = TRUE)
行 - 它会记录节点如何激活对方的日志。
- 日志观察器然后可以用
Ctrl-F3
(或Command-F3
苹果) - 启用有可手动覆盖的节点坐标制图。当显示大量节点以防止线路相互交叉时,这可能是具有挑战性的。
- 然后,您可以使用箭头键在日志中移回(基本上您正在日志中移动)。
- 这里解释了被动符号:Shiny Reactivity Overview
- 它暴露了很多对用户不可见的反应活动,因此可能会引起混淆。
- 它不适用于大型Shiny应用程序 - 此工具的许多方面根本无法扩展。
这个答案也是非常有用的,thx。由于上面提到的警告,看来shinyTester会错过一些事件。反应日志可视化工具记录一切,几乎太多:) –
谢谢。当我解决它时,会做静态与动态闪亮节点分析器的优缺点列表。 –
感谢您的概述!一个小的评论,对于“闪亮的反应性概述”,我想这个链接是不存在的。 – BigDataScientist
反应式日志可视化器是一个功能强大的工具,但不幸的是,无法像@Mike Wise指出的那样在较大的应用程序中进行扩展。前一段时间,我阅读了一些有趣的想法来改进rstudio/shiny#1846和rstudio/shiny#1532的调试体验,并开始探索实现它们的方法。
经过磕磕绊绊(summary)后,我发现最好的方法是解析原始的反应日志并从中构建一个依赖关系图。
包装在https://github.com/glin/reactlog。这两个主要特点是:
显示触发失效
observe({
reactlog::traceInvalidation()
rx()
})
4: observe({
reactlog::traceInvalidation()
rx()
})
3: rx [<text>#7]
2: val => num 10
1: observe(val(10))
,并在树视图
observe({
reactlog::listDependencies()
rxA() + rxB() + rxAB()
}, label = "obs")
obs*
+-- rxA*
| `-- valA*
+-- rxB
| `-- valB
`-- rxAB*
+-- valA*
`-- valB
上市活性依赖调用堆栈
树视图可能对查看多个依赖关系是否失效特别有用(星号表示失效或更改)。
辉煌。工作很好。 –
- 1. 闪亮应用程序的反应更新 - 单向依赖
- 2. 依赖闪亮的物体
- 3. 闪亮反应
- 4. WPF - 节点式的依赖从深树
- 5. ř闪亮,反应性表达
- 6. 闪亮反应与IncludeMarkdown?
- 7. rmarkdown网站和HTML依赖关系中的闪亮应用
- 8. 将节点信息从networkd3提取到闪亮的反应变量中
- 9. 闪亮 - 问题renderUI()的反应
- 10. 闪亮:renderUI反应的问题
- 11. R闪亮 - 简单的反应问题
- 12. 嵌入反应生成的URL闪亮
- 13. 如何聚合闪亮的反应表?
- 14. 创建反应selectInput - 与闪亮的flexdashboard
- 15. D3树节点双击亮点文字
- 16. ggiraph情节移入闪亮的应用
- 17. 图:节点依赖关系
- 18. 节点package.json依赖关系
- 19. mvn依赖关系:具有传递性依赖关系的树
- 20. R闪亮玩具示例中的反应性
- 21. 闪亮:允许反应性是用户可选的
- 22. 包含反应性对象在闪亮的出口
- 23. 来自rhandsontable数据库的反应性闪亮对象
- 24. SBT依赖树
- 25. 在R闪亮的互相依赖的输入滑块
- 26. 反应tabtabnel在navbarMenu中闪亮
- 27. ř闪亮:dygraphs系列反应以`date_window`
- 28. 闪亮的预测情节
- 29. R依赖于另一个selectInput的闪亮selectInput
- 30. 依赖于闪亮的R包给出RJSONIO警告
我喜欢那个包,不知道它。将在这些日子中的一件大事上尝试一下。 –
如果您有很多节点并且想要仔细分析并静态分析,这可能会更好。我在下面发布的内置可视化工具非常具有启发性,因为您可以了解依赖关系是如何动态构建和跟踪的 - 这是静态工具无法真正捕获的。但是它也很容易混淆。 –
你是对的Mike,他们可能应该同时使用。我不知道“反应日志可视化器”。关于闪亮应用程序的“大小”,如果您可以(添加)“ShinyHierachy()”中的功能,使您可以过滤部分闪亮的应用程序,以便控制图表的大小,这可能会很有趣。 – BigDataScientist