首页 > 解决方案 > 防止 dateInput 在 R Shiny 中为 NULL

问题描述

我试图让我的 dateInput 只接受 dateInput 下拉选项中的值,而不接受其他值。例如,如果用户尝试不输入任何内容或删除日期,则返回“1995-11-13”。我的代码运行,但是当没有输入任何内容时,它仍然什么都没有,而不是更改为“1995-11-13”。我究竟做错了什么?

shinyApp(
  ui = fluidPage(
    sidebarLayout(
      h4("Date:"),
      dateInput("date", label = h5("Date input"), value = "1995-11-13")
    )
  ),
  server = function(input, output, session){
    observeEvent(
      input$date,
      if(is.null(input$date)){
        updateDateInput(session, "date", value = "1995-11-13")
      }
    )
  }
)

标签: rshiny

解决方案


您说“如果用户尝试不输入任何内容”,那不会使输入成为NA,而只是NULL. 所以这就是我要开始的地方。

我会改变代码:

if(is.na(input$date)){
    updateDateInput(session, "date", value = "1995-11-13")
  }

改为使用is.null()

if(is.null(input$date)){
    updateDateInput(session, "date", value = "1995-11-13")
  }

推荐阅读