对于一个项目,我使用闪亮的多个 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)
这个问题真的很烦人,扰乱了整个用户体验。对此有任何帮助将不胜感激。