gpt4 book ai didi

r - 观察输入的变化并更新 R Shiny 中的输出

转载 作者:行者123 更新时间:2023-12-02 01:33:30 25 4
gpt4 key购买 nike

我想观察 input 的变化。当input改变时,output应该更新。

    output = reactiveValues(a = 10)
input = reactiveValues(act1 = 0, act2 = 0)
eventReactive(input$act1, { output$a = 20 })
eventReactive(input$act2, { output$a = 30 })
isolate(input$act1)
# 0
isolate(output$a)
# 10
input$act1 = 1
isolate(output$a)
# 10
isolate(input$act1)
# 1

我原以为 output$a 在更改 input$act1 后会变成 20。但这并没有发生。

由于input是一个响应式(Reactive)值对象,它应该调用eventReactive返回的响应式(Reactive)表达式对象。为什么 output$a 没有更新?

最佳答案

eventReactive 确实返回了一个响应式(Reactive)表达式,它是一个函数并且被延迟计算。要评估响应式(Reactive)表达式,需要满足两个条件:

  • 必须有一个依赖于它的输出元素
  • 至少其依赖之一必须失效

由于您的代码会立即丢弃新创建的表达式,因此很明显它们没有依赖值,因此没有理由进行评估。

据我了解你的意图,你需要的是一个观察者,与响应式(Reactive)表达不同,它被急切地评估。

observeEvent(somevent, { someAction() })

附带说明,使用响应式表达式来处理副作用通常不是一个好的做法。

关于r - 观察输入的变化并更新 R Shiny 中的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32664872/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com