微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ReactJS Mobx 项目没有更新

如何解决ReactJS Mobx 项目没有更新

我正在尝试使用 MobX 构建一个扫雷游戏,我遇到的问题是我不明白为什么我在板上的单元格不会更新。

这是一个包含我的代码的沙箱

https://codesandbox.io/s/epic-sun-n1dnz?file=/src/Components/CellComponent.js

在我的“CellComponent”中我定义了:

            <Button onClick={() => game.unveilCell(cell)}>{revealed? "2" : "?"}</Button>

所以我希望当我点击单元格时,它会显示数字 2 但只有当我等待大约 1 分钟它更新时,我假设我使用的 MobX 观察者是错误

after waiting 1 minute

解决方法

您需要使 makeAutoObservable 调用成为 Cell 构造函数中的最后一个:

export default class Cell {
  value;
  x;
  y;
  revealed;
  flag;

  constructor(x,y) {
    this.x = x;
    this.y = y;
    this.revealed = false;
    this.flag = false;
    this.value = 0;
    // It should be in the end,after all initialisations
    makeAutoObservable(this);
  }

  // ...

默认情况下,没有额外配置 MobX 不能拾取未定义的字段并使它们可观察。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。