在UI中的输入之间建立依赖性

时间:2018-08-06 07:57:53

标签: r shiny

有2个日期输入:date1date2date2不应早于date1。如何在UI中建立依赖关系?

我应该在min =的{​​{1}}中写什么?
我已经尝试过:date2min = input$date1min = 'input$date1'min = 'input.date1''min = 'input.date1''"min = 'input$date1'",但是它不起作用。

"min = 'input.date1'"

2 个答案:

答案 0 :(得分:1)

不确定是否可以仅在UI中实现此目的,但是可以在服务器逻辑中使用updateDateInput来获得所需的行为:

library(shiny)

ui <- fluidPage(
  dateInput("date1", "date 1"),
  dateInput("date2", "date 2 = not be before date 1") 
)

server <- function(input, output, session) {
  observe({
    req(input$date1)
    ## whenever input$date1 changes, change min of input$date2
    updateDateInput(session, "date2", min = input$date1)
  })
}

shinyApp(ui = ui, server = server)

答案 1 :(得分:1)

还可以使用observeEvent

library(shiny)

ui <- fluidPage(
  dateInput("date1", "date 1"),
  dateInput("date2", "date 2 = not be before date 1") 
)

server <- function(input, output, session) {
  observeEvent(input$date1,{
    updateDateInput(session, "date2", min = input$date1 + 1,value = input$date1 + 1)
  })
}

shinyApp(ui = ui, server = server)