使用闪亮的模块动态添加UI元素

时间:2018-11-13 12:42:55

标签: r shiny shiny-reactivity

我已经创建了一个闪亮的模块,并且想通过单击按钮(或者也将其删除)将模块的副本动态添加到侧边栏。

我创建了一个名为index的闪亮模块(及其UI元素和其功能)。服务器端返回一个反应式表达式,最后我将它们组合在一起以创建过滤器。这些元素中的每一个都返回一个反应性元素,一旦按下按钮,就会创建最终的过滤器。现在,我需要手动添加要使用的过滤器数量(在此示例中,有3种不同的过滤器)。我希望能够动态添加过滤器。

我想要的是一个在单击时创建的按钮,将创建一个新的indexUI,并且在按下操作按钮时,它会循环浏览到目前为止创建的所有indexUI

ui <- fluidPage(
  sidebarPanel(
    indexUI("filter1",shape_option = shape_option),
    indexUI("filter2",shape_option = shape_option),
    indexUI("filter3",shape_option = shape_option),
    actionButton("goButton", "Go!"),
  )
)
server <- function(input, output, session) {
  index1<-callModule(index,"filter1",meta_file)
  index2<-callModule(index,"filter2",meta_file)
  index3<-callModule(index,"filter3",meta_file)
  index_glob<-reactive({
    input$goButton
    ind<-isolate(index1()$index & index2()$index & index3()$index)
    ind
  })

我想也许与renderUI和insertUI一起使用,但不确定如何将其与模块结合使用,特别是因为我需要创建的每个模块的反应式表达式。

0 个答案:

没有答案