【发布时间】:2018-12-02 18:37:12
【问题描述】:
如何在删除某些元素后清理“输入”(下面示例中的 verbatimTextOutput("summary"))。
我使用shiny.unbindAll 尝试了一些事情,但没有成功。
专用的removeUI 不做这项工作。
请看一下这个例子:
library(shiny)
ui <- fluidPage(
actionButton('insertBtn', 'Insert'),
actionButton('removeBtn', 'Remove'),
verbatimTextOutput("summary"),
tags$div(id = 'placeholder')
)
server <- function(input, output, session) {
## keep track of elements inserted and not yet removed
inserted <- c()
observeEvent(input$insertBtn, {
btn <- input$insertBtn
id <- paste0('txt', btn)
insertUI(
selector = '#placeholder',
## wrap element in a div with id for ease of removal
ui = tags$div(
actionButton(inputId = paste0("truc",id),label = paste0("truc",id)),
id = id
)
)
inserted <<- c(id, inserted)
})
observeEvent(input$removeBtn, {
removeUI(
## pass in appropriate div id
selector = paste0('#', inserted[length(inserted)])
)
inserted <<- inserted[-length(inserted)]
})
output$summary <- renderPrint({
invalidateLater(1000)
lst <- reactiveValuesToList(input)
message("upd")
lst[order(names(lst))]
})
}
shinyApp(ui, server)
知道怎么做吗?
【问题讨论】: