Shiny应用dateRangeInput传NA触发日期格式警告如何消除
警告触发原因
updateDateRangeInput 函数内部会自动尝试将传入的 start、end 参数转换为 yyyy-mm-dd 格式的合法日期字符串,你传入的 NA 不属于可识别的日期格式,转换失败就会抛出对应警告。你编写的无触发条件的 observe 会在日期组件渲染完成后立刻执行,所以应用启动阶段就会触发警告。
消除警告的解决方案
你可以根据使用习惯选择以下任意一种方案,都可以保留「应用启动时默认不选中任何日期」的效果:
- 方案1:直接屏蔽更新逻辑的警告
把你原来的更新语句用suppressWarnings包裹,仅屏蔽本次更新产生的特定警告,不影响其他功能:observe({ suppressWarnings(updateDateRangeInput(session,"daterange1",start = NA, end = NA)) }) - 方案2:调整日期组件的生成逻辑
直接在renderUI生成组件时就设置默认空值,删掉额外的服务端更新语句,也可以避免警告:# 调整后的renderUI代码 output$daterange <- renderUI({ suppressWarnings(dateRangeInput("daterange1", "Period you want to see:", min = min(data()$date1), start = NA, end = NA)) }) # 原来的observe({updateDateRangeInput...}) 整行删除即可
内容的提问来源于stack exchange,提问作者Antonio
相关产品推荐
相关产品推荐

