我在Shiny用户群上问了这个问题,但是还没有得到回复,所以我也在这里发帖。
我有一个需要跟踪用户偏好的应用,可能有多个用户可能同时使用该应用。为简单起见,我们假设我有一个列表,其中包含存储在闪亮服务器功能中的用户设置。它是一个很长的列表(1000个元素),包含基于用户与应用程序交互的属性。用户实际上可以将此列表的任何索引更改为数百种可能的设置之一。我最初的解决方案是这样的:
shinyServer(function(input, output, session) {
settings <<- rep("A",1000)
observe({
input$changeSettingsButton
settings[input$changeIndex] <<- input$newSetting
})
}
除非您有多个人同时使用该应用,否则效果会非常好,因为&lt;&lt; - 会话跨会话创建全局共享变量。有没有办法做到这一点?
答案 0 :(得分:3)
您可以使用reactiveValues
来存储持久用户信息。像
shinyServer(function(input, output, session) {
myReactives <- reactiveValues(settings = rep("A",1000))
observe({
input$changeSettingsButton
isolate(myReactives$settings[input$changeIndex] <- input$newSetting)
})
}
可能适合你。