R闪亮模块部署问题之间的通信

communication between R shiny modules deployment problem

我对 R 闪亮模块之间的通信有疑问。我使用 golem 包开发了一个包含两个模块的应用程序:数据和分析 https://xuemaozhang.shinyapps.io/reactivedata/ 为了共享数据集,我在 app_server.R.

中使用了 reactiveValues, values = reactiveValues(data_imported=NULL)

将应用程序部署到shinyapps.io后,我发现它不允许多个用户:当一个用户更改数据时,其他用户也会看到相同的更新数据。我是闪亮应用程序开发的新手。问题如何解决?源代码可以从我的 github 站点看到:https://github.com/xuemaozhang/reactivedata

我更改了 mod_module1_data_servermod_module2_analysis_serverapp_server 函数以便在会话中处理数据,无需在服务器外部创建 reactiveValues()功能:

mod_module1_data_server <- function(id){
  moduleServer( id, function(input, output, session){
    # ns <- session$ns
    Data <- reactive({
      Data <- get(input$dataset)
      Data
    })
    output$datatable<-renderDataTable({ Data()  })
    return(reactive(Data()))
  })
}
mod_module2_analysis_server <- function(id, Data){
  moduleServer( id, function(input, output, session){
    ns <- session$ns

    observe({
      updateSelectizeInput(session, "numvar",
                           choices = names(Data()))
    })

    output$summary <- renderPrint({
      summary(Data()[, input$numvar])
    })

    output$histogram<- renderPlot({
      hist(Data()[, input$numvar])
    })
  })
}

这是你应该放在服务器上的内容:

server <- function( input, output, session ) {
  Data <- mod_module1_data_server("module1_data_ui_1")
  mod_module2_analysis_server("module2_analysis_ui_1", Data)
  
}