Shiny 使用插入ui时隔离模块中的输入

Shiny 使用插入ui时隔离模块中的输入,shiny,module,Shiny,Module,我想创建几个使用输入参数的ui。问题是,创建的新UI仍然对输入做出反应,即使我放置了一个隔离() 正确的行为将创建一个自定义UI,并与来自selectInput()的新输入隔离 例如,我希望第一个用户界面选择2019年,第二个用户界面选择2020年。 在这里我们可以看到,添加2020将在每个错误的UI中改变 库(闪亮) customplotUI也许我误解了您试图实现的目标,但是当我运行代码时,将注释行与isolate一起使用似乎可以正常工作 我猜在创建最小的reprex(谢谢你这么做!)时,你

我想创建几个使用输入参数的ui。问题是,创建的新UI仍然对输入做出反应,即使我放置了一个隔离()

正确的行为将创建一个自定义UI,并与来自selectInput()的新输入隔离 例如,我希望第一个用户界面选择2019年,第二个用户界面选择2020年。 在这里我们可以看到,添加2020将在每个错误的UI中改变

库(闪亮)

customplotUI也许我误解了您试图实现的目标,但是当我运行代码时,将注释行与
isolate
一起使用似乎可以正常工作

我猜在创建最小的reprex(谢谢你这么做!)时,你可能太小了,删除了另一个更新
数据的reactive。如果您试图根据其他输入更新各个UI元素,但保持相同的筛选方案,则需要在
renderPrint
语句之外捕获
input$years
的当前值

在这里,您可以看到行的子集保持不变,但最后一列根据输入框进行更新:

...
    id <- Id()('chart')
    targetYears <- input$years
    
    output[[id]] <- renderPrint({
      data <- data.frame(year=c(2019,2020),
                         value=c("mtcars2019","mtcars2020"), 
                         yrInput = paste(input$years, collapse =" "))
      data[data$year %in% targetYears, ]
...

。。。

是的,我在寻找你提到的第二种行为。不知道为什么我以前没想到这个,哈哈。非常感谢您的详细解释!