R Shiny - 将 selectizeInput 作为参数传递给 ShinyModule

R Shiny - Passing selectizeInput as argument to ShinyModule

这是我的服务器功能代码:

dragularServer <- function(id, input_col) {​​​​​
  moduleServer(
    id,
    function(input, output, session = getDefaultReactiveDomain()) {​​​​​
   
      output$elementsInput <- renderUI({​​​​​
        lapply(input_col, function(x) tags$div(class="inlinedisplay", drag = x, x))
      }​​​​​)
   
    }​​​​​
  )
}​​​​​

我想将值从 selectizeinput 传递给函数。

selectizeInput("columns_1", "Relevant vars", choices = unique(data$var), selected = c("Tradition"), multiple = T)

## Übergabe
dragularServer("id_1", input_col = input$columns_1)

数据正确传递一次(加载时),但不会对任何更改做出反应。谁能解释这种行为?跟命名空间有关系吗?

您对 dragularServer 的输入只是一个值而不是一个反应,因此它只会在启动时传递一次。要使其具有反应性,请使用 reactive({input$columns_1}) 并调整服务器中的代码以处理反应性值,即 input_col()