【问题标题】:How to invalidate reactive observer using code?如何使用代码使反应式观察者无效?
【发布时间】:2015-10-29 01:38:33
【问题描述】:

给定类似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
})

场景:

输入: 选定的日期范围和客户选择器。日期范围在按下操作按钮时注册。

希望采取的行动: 我们希望能够在挑选客户时加载保存的日期范围(如果可用)。

问题: 如何触发 input$select_dates 就像按下操作按钮一样?像invalidateLater 这样没有计时器的东西会很好。或者,如果有手动方式将 input$select_dates 标记或标记为无效。

【问题讨论】:

    标签: shiny


    【解决方案1】:

    定义一个反应值

    rv &lt;- reactiveValues( v = 0)

    把它放在你的反应式表达式中

    dateRange <- reactive({
        rv$v
        input$select_dates #action button
    
        save_selected_date_range()
        isolate(input$dateRange)
    })
    

    只需在代码的任何部分更改rv$v 的值(如rv$v &lt;- rv$v + 1),dateRage 表达式就会失效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-05
      相关资源
      最近更新 更多