我正在将我的应用程序部署到 shinyapps 并且当我打开多个窗口时我注意到一些奇怪的行为。我已经渲染了一个数据表,当我更新一个窗口上的过滤器时,我的表只在最后一个打开的窗口上更新。
阅读范围文档后,我已将我的反应值移动到服务器函数中。
应用程序.R
source("helpers/load_data.R")
server <- function(input, output, session) {
source("helpers/load_session_data.R")
output$risk_table <- renderDataTable({
DT::datatable(riskData$data
rownames = FALSE)
})
observeEvent(input$get_filtered_data, {
# UpdateTable function takes my table_csv and filters by the date, and updates the riskData reactive value
UpdateTable(table, input$date)
}
UpdateTable <- function(table, date) {
#... filter stuff
riskData$data <- filtered_table
}
}
load_session_data.R
#table is a data.frame loaded globally outside of the ui and server functions.
riskData <- reactiveValues(data = table_csv)
我认为在服务器函数中加载我的反应值意味着每个会话都有自己的反应值?我希望能够在不同的会话中独立过滤表。