fluxにおけるStore間の依存関係(waitForと他Storeデータ参照)
- Storeをシングルトンにして、任意のComponentからgetterを呼び出すのは問題ない
疑問
複数Store間の依存関係をどうやって解決するか。fluxではdispatcher(waitFor())が管理するがどう実装されているのか。
- →fluxxorでは、
store.waitFor(List<string> stores, Action<store> callback)
みたいな。 - →facebookでは、
fooDispatcher.waitFor(List<string> dispatchToken)
引数はdispatcher.register()
の返り値 - flux/UnreadThreadStore.js at master · facebook/flux · GitHub
- →fluxxorでは、
waitForはタイミング依存の制御だけど、単純に他のStoreのデータを参照したい場合は? 具体的には現状のPlayerModel.Attack(Enemy)というようなロジックをどうfluxに落としこむ?
- 多分1つのStore、例えばAttackStore、BattleStoreのようなところにPlayerとEnemy双方のデータを押し込める?
- いや、公式のexampleで普通に他のStoreのstateを取得してた!(
var threads = ThreadStore.getAll();
) - flux/UnreadThreadStore.js at master · facebook/flux · GitHub
titanへの適用
・ EnemyStoreの Behurt()
ハンドラ内で、PlayerStoreのデータを参照する形になりそうな気がする。