Для проекта я использую несколько полей numericInput в блестящих для ввода определенных сумм. Пользователь приложения должен иметь возможность добавлять новые суммы, если это необходимо, и вводить любые числовые значения, либо с помощью стрелок, либо вручную. Однако при добавлении новых полей и попытке добавления сумм ввод кажется «перепрыгивающим» и иногда происходит сбой всего приложения.
Я думал об использовании полей textInput вместо numericInput, но, похоже, это тоже не работает.
Это MWE кода, который я использую. Как только вы добавляете пару полей суммы с помощью кнопки «плюс» и вводите значения вручную, она начинает прыгать / не работать.
ui <- fluidPage(#....design etc.,
mainPanel(
uiOutput("inputwidgets"),
actionButton(inputId = "number",
label = icon(name = "plus",
lib = "font-awesome")),
actionButton(inputId = "delete_number",
label = icon(name = "minus",
lib = "font-awesome")),
actionButton("update", "Calculate")
)
)
server <- function(input, output) {
reac <- reactiveValues()
observeEvent(c(input$number,input$delete_number), {
# you need to add 1 to not start with 0
add <- input$number+1
# restriction for delete_number > number
delete <- if(input$delete_number > input$number) add else input$delete_number
calc <- add - delete
reac$calc <- if(calc > 0) 1:calc else 1
})
# By clicking the actionButton "number" an additional row appears
observe({
req(reac$calc)
output$inputwidgets = renderUI({
input_list <- lapply(reac$calc, function(i) {
amount <- input[[paste0("amount",i)]]
# for each dynamically generated input, give a different name
fluidRow(
column(2,
# Input: Specify the amount ----
numericInput(
paste0("amount",i),
label="Amount",
#step = 1000,
value = if(!is.null(amount)) amount else 0
)
)
)
})
do.call(tagList, input_list)
})
})
}
# Create Shiny app ----
shinyApp(ui = ui, server = server)
Эта проблема действительно раздражает и мешает работе всего пользователя. Буду признателен за любую помощь в этом.