";shinyFeedback“;“不适用于”;dateRangeInput“;成分
我试图测试“shinyFeedback”包的处理日期,但无法运行此测试代码";shinyFeedback“;“不适用于”;dateRangeInput“;成分,r,shiny,R,Shiny,我试图测试“shinyFeedback”包的处理日期,但无法运行此测试代码 library(shiny) library(shinyFeedback) ui <- fluidPage( shinyFeedback::useShinyFeedback(), uiOutput("uo_numeric"), uiOutput("uo_date_range") ) server <- function(input, output, se
library(shiny)
library(shinyFeedback)
ui <- fluidPage(
shinyFeedback::useShinyFeedback(),
uiOutput("uo_numeric"),
uiOutput("uo_date_range")
)
server <- function(input, output, session) {
# Numeric
output$uo_numeric <- renderUI({
numericInput("n", "Label", value = 10)
})
# Date range
output$uo_date_range <- renderUI({
dateRangeInput(
"si_date_range", "Date range",
start = as.Date(lubridate::now()),
end = as.Date(lubridate::now()))
})
observeEvent(
input$si_date_range, {
print(!is.na(input$si_date_range))
shinyFeedback::feedbackWarning(
"si_date_range", !is.na(input$si_date_range),
"Please select a valid dates")
}
)
observeEvent(
input$n, shinyFeedback::feedbackWarning(
"n", input$n %% 2 != 0, "Please select an even number")
)
} # server
# Run the application
shinyApp(ui, server)
库(闪亮)
图书馆(shinyFeedback)
ui这是我的版本
输入$si_date_range
应该是两个元素(第一个和第二个日期)的向量
您可以使用is.na
查看输入的日期是否为空。feedbackarning
还可以检查以确保您的第一次约会早于第二次约会
server <- function(input, output, session) {
# Numeric
output$uo_numeric <- renderUI({
numericInput("n", "Label", value = 10)
})
# Date range
output$uo_date_range <- renderUI({
dateRangeInput(
"si_date_range", "Date range",
start = as.Date(lubridate::now()),
end = as.Date(lubridate::now()))
})
observeEvent(
input$si_date_range, {
print(input$si_date_range)
shinyFeedback::feedbackWarning(
"si_date_range",
as.Date(input$si_date_range[1]) > as.Date(input$si_date_range[2]) |
any(is.na(input$si_date_range)),
"Please select valid dates")
}
)
observeEvent(
input$n, shinyFeedback::feedbackWarning(
"n", input$n %% 2 != 0, "Please select an even number")
)
} # server
server下面是对这个问题的回答。
使用“remotes::install\u github(“merlinoa/shinyFeedback”)”重新安装包修复了我的问题。输入$si\u date\u范围
应该是两个元素的向量(第一个和第二个日期)。您可以使用is.na
查看输入的日期是否为空,还可以检查以确保您的第一个日期早于第二个日期,例如:shinyFeedback::feedbackarning(“si_date_range”,as.date(输入$si_date_range[1])>as.date(输入$si_date_range[2])|任何(is.na(输入$si_date range)),“请选择有效日期”)
。。。那会有你想要的验证吗?谢谢,@Ben,但它不会向我显示警告。如果将“!is.na(输入$si_date_range)”替换为TRUE或FALSE-无happens@Ben是的,请:)我使用了shiny 1.5.0和shinyFeedback 0.1.0,但仍然不起作用。我尝试在这里使用TRUE as FALSE“shinyFeedback::feedbackarning(“si_date_range”,TRUE,“请选择有效日期”)——调用“feedbackarning”似乎有问题它也适用于“dateInput”元素,但不适用于“dateRangeInput”是的,当然。我做了并重新检查了它,然后重新启动了R会话。不适用于InputDateRange它适用于另一台使用Shining 1.4.0的机器,不适用于Shining 1.5.0。shinyFeedback是最新的。可能1.5.0 Shining不支持DateRange是的,很奇怪,我在aws web rstudio上用1.4.0 Shining测试了它-它似乎有效-但不适用于本地Mac 1.5.0 Shining