给出类似pseduo的代码:
dateRange <- reactive({
input$select_dates #action button
save_selected_date_range()
isolate(input$dateRange)
})
customerId <- reactive({
#check if customer has saved date range if so trigger
saved_info <- saved_preferences(input$customerId)
if(nrow(saved_info) > 0) {
flog.info(saved_info)
updateDateRangeInput(session, "dateRange", start = saved_info$start, end = saved_info$start)
}
input$customerId
})
情景:
输入 选定的日期范围和客户选择器。按下操作按钮时会注册日期范围。
所需行动 我们希望能够在挑选客户时加载已保存的日期范围。
问题: 如何触发输入$ select_dates,就像按下操作按钮一样?没有计时器的invalidateLater之类的东西会很好。或者,如果有手动方式将输入$ select_dates标记或标记为无效。
答案 0 :(得分:6)
定义无效值
rv <- reactiveValues( v = 0)
把它放在你的反应表达中
dateRange <- reactive({
rv$v
input$select_dates #action button
save_selected_date_range()
isolate(input$dateRange)
})
只需在代码的任何部分更改rv$v
(如rv$v <- rv$v + 1
)的值,dateRage
表达式就会失效。