数字输入在 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
:
- 创建无功输入函数
groupsize
- 将此函数传递给
debounce
以创建一个新函数groupsize_d
- 使用这个新函数进行渲染
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()
})
})
我希望 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
:
- 创建无功输入函数
groupsize
- 将此函数传递给
debounce
以创建一个新函数groupsize_d
- 使用这个新函数进行渲染
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()
})
})