我有一个flexdashboard使用光泽。这是.Rmd
中的MRE repo和gist。当我将应用程序放在Shinyapps.io上时,我意识到一个用户的操作可能会影响其他用户。我知道这是一个范围界定问题,但是我对范围界定在Flexdashboard中的工作方式感到困惑。
This page解释了“常规”闪亮应用的作用域:
您可能希望某些对象在所有会话中可见。例如,如果您具有大型数据结构,或者您具有非反应性的实用程序功能(不涉及输入或输出对象的实用程序功能),则可以一次创建这些对象并在所有用户会话中共享它们(在相同的R流程),方法是将它们放在app.R中,但不在服务器函数定义之内。
在Flexdashboard中,没有app.R
文件或server
函数。范围界定如何在这些类型的闪亮应用程序中起作用?
我有几个类似eventReactive()
的函数,它们在用户1命中提交并在文件末尾触发observeEvent(input$submit, {})
时为用户2更新。
eventReactive(rv$run2, {
if (remote==1) {
master$df <- drop_read_csv("/dash/master.csv", stringsAsFactors = FALSE)
} else {
master$df <- read.csv("dash/master.csv", stringsAsFactors = FALSE)
}
}, ignoreNULL = TRUE)
我最初posted this to RStudio Community大约9小时前,但它并没有产生很多观点(<20)或任何讨论。
答案 0 :(得分:0)
从rv <- reactiveValues()
块中移出global
可以解决问题。