Это не дает прямого ответа на ваш вопрос о том, почему он не работает с вашим кодом (ответ немного сложен, но @BigDataScientist верен, есть много старых вопросов с такими же строками «почему для цикл выводит только последний результат? "). Но вот решение, использующее модальный shinyalert
вместо блестящих модальных:
NUM_MODALS <- 5
ui <- fluidPage(
shinyalert::useShinyalert(),
actionButton("show", "Show modal dialog"),
lapply(seq(NUM_MODALS), function(id) {
div(id, ":", textOutput(paste0("modal", id), inline = TRUE))
})
)
server <- function(input, output) {
observeEvent(input$show, {
for(id in 1:5){
shinyalert::shinyalert(
type = "input",
text = paste("Please enter a date for ID", id),
inputPlaceholder = "Please use format MM/DD/YYYY",
inputId = paste0("modal", id)
)
}
})
lapply(seq(NUM_MODALS), function(id) {
output[[paste0("modal", id)]] <- renderText({
input[[paste0("modal", id)]]
})
})
}
shinyApp(ui = ui, server = server)