R-将selectizeInput作为参数传递给ShinyModule
这是我的服务器功能代码:R-将selectizeInput作为参数传递给ShinyModule,r,shiny,shinymodules,R,Shiny,Shinymodules,这是我的服务器功能代码: dragularServer <- function(id, input_col) { moduleServer( id, function(input, output, session = getDefaultReactiveDomain()) { output$elementsInput <- renderUI({ lapply(input_col, function(
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))
})
}
)
}
数据正确传递一次(加载时),但不对任何更改做出反应。有人能解释这种行为吗?它与名称空间有关吗?您输入到
dragularServer
中的内容只是一个值,而不是一个响应,因此在启动时只传递一次。要使其具有反应性,请使用reactive({input$columns\u 1})
并调整服务器中的代码以处理反应性值,即input\u col()。如果没有模块,我不必将它们包装在反应式表达式中,为什么在这种情况下需要这样做?我以为这是某种名称空间问题……是的,我不完全确定。我的猜测是,这与如何注册反应值有关。如果我没有记错的话,它还可以将完整的输入
对象(没有反应式
)传递到模块,然后在模块中使用输入列[[“columns\u 1]]]
。也许我以后可以做更多的挖掘OK,至少它可以工作,很公平:-)。谢谢你的帮助
selectizeInput("columns_1", "Relevant vars", choices = unique(data$var), selected = c("Tradition"), multiple = T)
## Übergabe
dragularServer("id_1", input_col = input$columns_1)