r - r Shiny:将 dateInput 与 shinjs::toggleState 一起使用时无法解决错误
问题描述
我使用的是 R 版本 3.6.2,在 shinyjs::toggleState 中使用 dateInput 时遇到错误。我的代码的错误不会为其他输入数据类型生成。我觉得我在日期转换的某个阶段出错了。我尝试了几个不同的选项,但仍然无法解决问题。非常感谢任何解决此问题的支持。下面是我尝试的 UI 和服务器代码片段。
尝试 1
用户界面
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
用户界面
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 中的错误:字符串不是标准的明确格式
非常感谢你
解决方案
不需要在uias.Date
中,将日期的格式传递给. 然后将日期对象传递给值或传递给参数的相同格式的字符串。format
dateInput
format
把它放在你的 ui 中:
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
在服务器中使用。
更新的服务器:
server <- function(input, output, session) {
observe({
shinyjs::toggleState("submit_button", condition = !is.null(input$player_names) & input$player_names != "" &
!is.null(input$session_date) & as.character(input$session_date) != "")
})
}
shinyApp(ui, server)
推荐阅读
- qt - 应用程序窗口中的 QML 对话框定位
- react-native - 如何通过 react-navigation 4+ 使用自定义屏幕来屏幕转换?
- swift - 无法将 [Int] 类型的值转换为指定类型“Int”
- r - R:识别数据框中的列名是否包含字符串
- python - 为什么在maya中第一次按下alt修饰符不会触发按键释放事件?
- java - 如何在android上使用opencv去除感兴趣图像的背景?
- python - 检查二维numpy数组中是否存在数组
- javascript - Javascript Array.sort() 不满足完整排序规则
- python - 如何在连接 4 板上执行树搜索并确定最佳移动?
- asp.net-mvc - DropdownListFor 值未设置