我正在尝试uiOutput使用索引来添加和删除元素,以跟踪每个单独的元素。列表中有一个actionButton用于添加和的元素,每个元素都有一个x按钮,用于删除所选项目,如下图所示:
我正在使用同时包含ui和server代码的单个.Rmd文件。我当前的解决方案(无法实现上面显示的所需功能-它基本上什么都不做)如下:
actionButton("addFilter", "Add filter", icon=icon("plus", class=NULL, lib="font-awesome"))
i <- 0
observeEvent(input$addFilter, {
i <<- i + 1
uiOutput(paste("filterPage",i,sep=""))
output[[paste("filterPage",i,sep="")]] = renderUI({
fluidPage(
fluidRow(
column(6, selectInput(paste("filteringFactor",i,sep=""), "Choose factor to filter by:",
choices=c("factor A", "factor B", "factor C"), selected="factor B",
width="100%")),
column(6, actionButton(paste("removeFactor",i,sep=""), "",
icon=icon("times", class = NULL, lib = "font-awesome")))
)
)
})
observeEvent(input[[paste("removeFactor",i,sep="")]], {
output[[paste("filterPage",i,sep="")]] = renderUI({})
})
})
Run Code Online (Sandbox Code Playgroud)
当我将uiOutput删除按钮observeEvent放在添加按钮之外时,observeEvent代码可以工作,但是我需要为每个索引使用单独的语句,如下所示:
uiOutput(paste("filterPage",1,sep=""))
uiOutput(paste("filterPage",2,sep=""))
uiOutput(paste("filterPage",3,sep="")) …Run Code Online (Sandbox Code Playgroud)