0
私はMobXを使ってOtelloゲームを作成しようとしています。だから私はタイルの変更を探して、それに応じて他のタイルを更新するという反応があります。mobx反応が不安定で、周期的な関数
したがって、次のコードでは、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())
を試しましたが、どちらも動作しません。
を実行しているのはだから、今それが毎回セル変更を実行しようとしています。それはまた細胞を変えるので、それは無限に自分自身を呼ぶことになるでしょう。開始セルが変更されたときにbumpRandomを呼び出すだけで、結果の変更は行わないように、反応にロジックを追加する必要があります。 –