R Shining中的意外dateInput行为
我有一个闪亮的应用程序,带有R Shining中的意外dateInput行为,r,shiny,R,Shiny,我有一个闪亮的应用程序,带有dateInput(),它是用以下代码创建的: dateInput( inputId = ns("mutatie_datum"), label = "Mutatiedatum:", value = "2019-12-01", format = "dd-M-yyyy", startview =
dateInput()
,它是用以下代码创建的:
dateInput(
inputId = ns("mutatie_datum"),
label = "Mutatiedatum:",
value = "2019-12-01",
format = "dd-M-yyyy",
startview = "month",
language = "nl"
)
当我运行应用程序时,将光标放在
dateInput()
字段中并手动删除9,我的应用程序崩溃。使用browser()
我可以看到dateInput()
的值已变成“0201-12-01”
。如何防止应用程序在输入有效日期之前执行计算?shinny
具有一些内置函数来验证值。下面,我使用了验证
/需要
的组合,如果日期无效,则显示错误消息。如果您只想在没有错误消息的情况下停止代码的执行,可以使用req
:
library(shiny)
ui <- fluidPage(
dateInput(
inputId = "mutatie_datum",
label = "Mutatiedatum:",
value = "2019-12-01",
format = "dd-M-yyyy",
startview = "month",
language = "nl"
),
verbatimTextOutput("test_out")
)
server <- function(input, output, session) {
datum_fun <- reactive({
# check the date
validate(
need(as.Date(input$mutatie_datum) > as.Date("2000-01-01"), "invalid date")
)
# do some calculations here
input$mutatie_datum
})
output$test_out <- renderPrint({
datum_fun()
})
}
shinyApp(ui, server)
库(闪亮)
ui谢谢@starja我会试试这个!