Как сохранить значения полей в соответствии с их label?

Проблема такая - в списке (векторе) input$phages_list выбрано три фага, а map2 генерирует поля для каждого фага. Если удалить из списка второй фаг (по середине), то label третьего фага занимает место второго, но при этом поля второго остаются. В итоге происходит смещение label, то есть удаляется label второго фага и поля третьего фага.

library(shiny)
library(purrr)

phages_list <- c('фаг1', 'фаг2', 'фаг3')

ui <- fluidPage(
  selectizeInput('phages_list', 'фаги', choices = phages_list, multiple = TRUE),
  uiOutput("phages_study")
)

server <- function(input, output, session) {
  
  observeEvent(input$phages_list, {
    id_phages <- reactive(paste0("phage", seq_len(length(input$phages_list))))
    
    output$phages_study <- renderUI({
      map2(id_phages(), input$phages_list, ~ textInput(.x, .y, value = isolate(input[[.x]])))
    })
    
  })
}

shinyApp(ui, server)

Ответы (0 шт):