数字输入在 Shiny 中响应太快

Numeric Input responds too quickly in Shiny

我希望 Shiny 稍等一下,让用户输入他们的组大小(不使用按钮)。这是我的代码的一个更简单的版本,但在我的实际代码中,我有更多的用户输入(所以我只希望 Shiny 只为这个输入等待 2 秒)。我一直在想如何将 debounce 用于此代码,但我不确定。

library(shiny)

shinyApp(ui <- fluidPage(sidebarPanel(
  "",
  numericInput("groupSize", label =
                 "How many people will be with you?", value = ""), 
  textOutput("output")
)) ,

server <- function(input, output, session) {
  getNumber <- reactive({
    
  req(input$groupSize>=0)
  groupSize <- input$groupSize
  })
  
  output$output <- renderText({ 
    getNumber()
   })
})

这适用于 debounce:

  1. 创建无功输入函数groupsize
  2. 将此函数传递给debounce以创建一个新函数groupsize_d
  3. 使用这个新函数进行渲染
library(shiny)

shinyApp(ui <- fluidPage(sidebarPanel(
  "",
  numericInput("groupSize", label =
                 "How many people will be with you?", value = ""), 
  textOutput("output")
)) ,

server <- function(input, output, session) {
  groupsize <- reactive(input$groupSize)
  groupsize_d <- debounce(groupsize,2000)
  
  getNumber <- reactive({
    
    req(groupsize_d()>=0)
    groupsize_d()
  })
  
  output$output <- renderText({ 
    getNumber()
  })
})