Sor*_*ing 5 r reactive-programming shiny
我已经开始维护一个约3000个代码行的Rshiny包.我想概述一下触发server.R文件中的内容.
是否有机会以一种简洁的方式生成反应性触发依赖图?
这可能对你很有意思:https://www.r-bloggers.com/announcing-shinytester-a-package-that-helps-you-build-shiny-apps/
它引入了一个叫做库shinyTester与功能
ShinyHierarchy().有关该文章的示例,请参见下图.

闪亮的"反应式日志可视化器"内置闪亮.它以递增方式构建图形,显示各种反应节点如何相互依赖.运行后的输出如下所示:
有关使用此工具的说明,请访问:Reactive Log Visualizer
以下是我对此工具的说明:
options(shiny.reactlog = TRUE)在shinyApp调用之前插入的行启用的Ctrl-F3(或Command-F3在Apple上)反应式日志可视化工具是一个功能强大的工具,但不幸的是,随着@Mike Wise指出,大型应用程序无法很好地扩展.前段时间我读了一些有趣的想法,以改善rstudio/shiny#1846和rstudio/shiny#1532的调试体验,并开始探索实现它们的方法.
在这里和那里(稍后)磕磕绊绊之后,我发现执行此操作的最佳方法是解析原始反应日志并从中构建依赖关系图.
打包在https://github.com/glin/reactlog.两个主要特征是:
显示触发失效的调用堆栈
observe({
reactlog::traceInvalidation()
rx()
})
Run Code Online (Sandbox Code Playgroud)
4: observe({
reactlog::traceInvalidation()
rx()
})
3: rx [<text>#7]
2: val => num 10
1: observe(val(10))
Run Code Online (Sandbox Code Playgroud)
并在树视图中列出反应依赖项
observe({
reactlog::listDependencies()
rxA() + rxB() + rxAB()
}, label = "obs")
Run Code Online (Sandbox Code Playgroud)
obs*
+-- rxA*
| `-- valA*
+-- rxB
| `-- valB
`-- rxAB*
+-- valA*
`-- valB
Run Code Online (Sandbox Code Playgroud)
树视图对于查看多个依赖项是否无效(星号表示失效或更改)可能特别有用.