MobX を使用して Otello ゲームを作成しようとしています。そのため、タイルの変更を探して、それに応じて他のタイルを更新するという反応があります。
以下のコードでは、bumpRandom()
別のタイルを変更して効果を確認しました。しかし、これは循環機能に入り、reaction
常に実行されます。での観察を停止するにはどうすればよいreaction
ですか?
class OtelloBoard {
@observable cells = [];
constructor() {
for (i = 0; i< SIZE*SIZE; i++) {
this.cells.push(new Cell())
}
reaction(
() => this.cells.map( cell => cell.status ),
status => {
this.bumpRandom()
console.log('Status has changed' + status)
}
)
}
@action bumpRandom() {
this.cells[45].bump()
}
}
私は試しuntracked(() => this.bumpRandom())
ましたが、それもうまくいきません。