使 sliderInput 的最小值和最大值可输入闪亮

问题描述 投票:0回答:1

我想让

sliderInput
的最小值和最大值可输入。因此,用户可以滑动值,但也应该有机会在值的蓝色框中键入值。这是一个简单的可重现示例:

library(shiny)
ui <- fluidPage(
  sliderInput("range", "Your range",
                min = 0, max = 1000, value = c(400, 500)),
)
  
server <- function(input, output) {
}
  
shinyApp(ui, server)

输出:

enter image description here

所以现在您只能滑动范围,但我想为用户提供在两个蓝色框中键入值的选项。所以我想知道是否有人知道如何使 sliderInput 也可输入?

r shiny
1个回答
0
投票

解决方法是创建两个链接到范围滑块的数字输入:

ui <- fluidPage(
  numericInput("obs_numeric1", "Min range value", min = 0, max = 1000, value = 400),
  numericInput("obs_numeric2", "Max range value", min = 0, max = 1000, value = 500),
  sliderInput("obs", "Range slider:",
              min = 0, max = 1000, value = c(400, 500)
  )
)

server <- function(input, output, session) {
  observeEvent(input$obs, {
    updateNumericInput(session, "obs_numeric1", value = input$obs[1])
  })
  observeEvent(input$obs, {
    updateNumericInput(session, "obs_numeric2", value = input$obs[2])
  })
  observeEvent(input$obs_numeric1 | input$obs_numeric2, {
    updateSliderInput(session, "obs",
                      value = c(input$obs_numeric1, input$obs_numeric2))
  })
}

shinyApp(ui, server)

甚至用于生成滑块的 Ion Range Slider Jquery 库也建议使用这种技术来更新范围值,参见此处。这也是他们的 github 页面上的请求

© www.soinside.com 2019 - 2024. All rights reserved.