防止在R Shiny

时间:2018-04-27 08:43:26

标签: r shiny

我正在尝试这样做,以便我的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")
      }
    )
  }
)

2 个答案:

答案 0 :(得分:0)

你说"如果用户试图输入任何内容" ,那么输入不是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")
  }

答案 1 :(得分:0)

library(shiny)
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(length(input$date) == 0){
        updateDateInput(session, "date", value = "1995-11-13")
      }
    })
  }
)