r闪亮:将dateInput与shinjs :: toggleState

时间:2020-04-12 12:39:40

标签: r shiny shinyjs

我正在使用R版本3.6.2,并且在Shinyjs :: toggleState中使用dateInput时遇到错误。我的代码错误不会为其他输入数据类型生成。我觉得我在日期转换的某个阶段出错了。我尝试了几种其他方法,但仍然无法解决问题。非常感谢您为解决该问题提供的支持。下面是我尝试的UI和服务器代码片段。

尝试1

UI

 shinyjs::useShinyjs(),
    selectInput("player_names_output","Select Player",choices = c("Player 1","Player 2","Player 3")),
     dateInput("session_date", "Training Date",value = as.Date(NA),format = "%d-%m-%Y"),
    actionButton("submit_button","Submit"),

服务器

   observe({
      shinyjs::toggleState("submit_button", !is.null(input$player_names) && input$player_names != "" && !is.null(input$session_date) && input$session_date != "")
    })

charToDate错误:字符串不是标准的明确格式

尝试2

UI

shinyjs::useShinyjs(),
selectInput("player_names_output","Select Player",choices = c("Player 1","Player 2","Player 3")),
 dateInput("session_date", "Training Date",value = as.Date(NA),format = "%d-%m-%Y"),
actionButton("submit_button","Submit"),

服务器

 observe({
      shinyjs::toggleState("submit_button", !is.null(input$player_names) && input$player_names != "" && 
   !is.null(as.Date(input$session_date,format = "%d-%m-%Y")) && as.Date(input$session_date,format = "%d- 
     %m-%Y") != "")
    })

charToDate错误:字符串不是标准的明确格式

非常感谢

1 个答案:

答案 0 :(得分:0)

不需要ui中的as.Date,请将日期格式传递给format的{​​{1}}参数。然后,将日期对象传递给值,或者将传递给dateInput参数的格式传递给字符串。

将其放入您的用户界面:

format

发生错误是因为您试图将日期与服务器中的字符串进行比较。您只能将喜欢与喜欢进行比较。将shinyjs::useShinyjs(), selectInput("player_names_output","Select Player",choices = c("Player 1","Player 2","Player 3")), dateInput("session_date", "Training Date",value = Sys.Date(), format = "dd-mm-yyyy"), actionButton("submit_button","Submit") 放在input$session_date调用中。此外,日期输入默认为日期对象,因此无需在服务器中使用as.character()

更新的服务器:

as.Date
相关问题