使Shiny的dateRangeInput的end总是大于start的。

时间:2019-08-30 06:47:35

标签: r shiny shiny-reactivity

我正在使用dateRangeInput制作闪亮的应用程序。我想以这样一种方式选择日期,即用户不能在第二个日期输入中选择比第一个日期输入更小的日期。
example image
例如,从上面的图片中,shiny现在让用户在第一个日期输入中选择2018年7月26日之后,从第二个日期输入中选择2017年的日期。我现在要进行更改,以使第二个日期输入总是在第一个日期输入之后的第二天开始,例如用户无法在第二个输入中选择甚至看不到2018年7月26日,而总是在第二天输入类似2018年7月27日的日期,之后在首次输入日期中选择2018年7月26日。我已经检查过dateRangeInput的文档,那里没有可用的文档。
那么,我该怎么做?

1 个答案:

答案 0 :(得分:3)

在ShinyWidgets中可以找到防止用户选择开始>结束的替代方法:

library(shiny)

ui <- fluidPage(
  shinyWidgets::airDatepickerInput("daterange", "Date range:",
                                   range = TRUE,
                                   value = c("2010-01-01", "2001-12-31")),
  verbatimTextOutput("res")
)
server <- function(input, output, session) {
  output$res <- renderPrint({
    paste("Start at", input$daterange[1], "and end at", input$daterange[2])
  })
}
shinyApp(ui, server)