首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在setInterval中,我每秒都在尝试更新可观察对象中的值,但mobx显示错误

在setInterval中,每秒都尝试更新可观察对象的值,但mobx显示错误的原因可能是因为在mobx中,只有在动作(action)中才能修改可观察对象的值。动作是一段被mobx追踪的代码,用于修改状态。在setInterval中,代码并没有被mobx追踪,因此会导致错误。

为了解决这个问题,可以使用mobx提供的runInAction函数来包装setInterval中的代码,以确保在动作中修改可观察对象的值。runInAction函数会告诉mobx这段代码是一个动作,从而避免错误。

以下是一个示例代码:

代码语言:txt
复制
import { observable, runInAction } from 'mobx';

class MyStore {
  @observable observableValue = 0;

  startUpdatingValue() {
    setInterval(() => {
      runInAction(() => {
        this.observableValue += 1;
      });
    }, 1000);
  }
}

const myStore = new MyStore();
myStore.startUpdatingValue();

在上面的示例中,我们使用了mobx的observable装饰器来定义可观察对象observableValue。然后,在startUpdatingValue方法中,我们使用setInterval来每秒更新observableValue的值。在setInterval的回调函数中,我们使用runInAction来包装修改observableValue的代码,确保它在动作中执行。

这样,mobx就能正确地追踪和更新observableValue的值,而不会出现错误。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的沙龙

领券