我想在模态对话框中使用textInput和textAreaInput打印一个tagList()。
然后,在这个模态对话框中,我要通过点击“+”图标添加一个带有textInput和textAreaInput的新元素,将ID编号增加到1。
当模态对话框出现时,第一个元素(ID为0)可以通过tagAppendChild很好地创建,但是单击“+”图标不会使用observeEvent和tagAppendChild在我的定义的tagList上添加第二个元素。
以下是可重现的Shiny代码。
有什么线索吗?谢谢
ui <- fluidPage(
actionButton("open", "Modal")
)
server <- function(input, output, session) {
count <- reactiveVal(0)
my_list <- tagList()
observeEvent(input$open, {
count(0)
showModal(modalDialog(
tagAppendChild(my_list, add_item(count())),
actionButton(inputId = "add_entry", style = "border: 0px", label = NULL, icon("circle-plus")),
footer = tagList(modalButton("Cancel"), actionButton("Ok", "OK"))
))
})
add_item <- function(count) {
return(
tagList(
textInput(width=164, paste0("add_id",count), paste("ID", count()), placeholder="Only numbers allowed"),
textAreaInput(width=400, height=100, paste0("add_comment",count), "Comments")
)
)
}
observeEvent(input$add_entry, {
count(count()+1)
tagAppendChild(my_list, add_item(count()))
})
}
shinyApp(ui, server)