React / Flux:我应该让商店听取其他商店的变化吗?
React / Flux: Should I have stores listen to other stores for changes?
我已经为我的第一个现实世界实现构建了一个基本的通量应用程序。
假设我有一个基本的货币转换应用程序。
当我更改金额或货币 to/from 下拉列表时,我需要 ajax 调用
- 1) 重新获取货币信息,并且
- 2) 重新计算转化率。
我有一个 汇率商店 和一个 currencyInfo 商店。
这是我最大的挂断:
我如何告诉商店根据各种 UI 件/其他商店数据更改重新获取数据?
这些更新也应该按顺序进行,所以
- 1) 更新UI状态
- 2) 获取货币信息并更新状态/UI 3) 获取转换,进行计算并使用最终数字更新状态/UI。
我看到的选项:
a) (blech) ViewActionCreator.changeAmount()、changeFromCurrency()、changeToCurrency()、所有 API.fetchCurrency(),然后是 API.fetchConversion() 并希望 ajax 呼叫回来以正确的顺序或尝试找出 waitFor
b) 让 conversionStore 和 currencyStore 监听 amountStore 的变化,然后重新获取它们自己的数据
C) ?
我建议您查看 flux dispatcher 中的 waitFor() 方法。它允许您指定存储响应操作的更新顺序。
Facebook 的聊天应用程序有一个很好的例子,其中一个商店等待其他两个商店完成更新,然后再更新以响应操作。
https://github.com/facebook/flux/blob/master/examples/flux-chat/js/stores/UnreadThreadStore.js
我已经为我的第一个现实世界实现构建了一个基本的通量应用程序。
假设我有一个基本的货币转换应用程序。
当我更改金额或货币 to/from 下拉列表时,我需要 ajax 调用
- 1) 重新获取货币信息,并且
- 2) 重新计算转化率。
我有一个 汇率商店 和一个 currencyInfo 商店。
这是我最大的挂断:
我如何告诉商店根据各种 UI 件/其他商店数据更改重新获取数据?
这些更新也应该按顺序进行,所以
- 1) 更新UI状态
- 2) 获取货币信息并更新状态/UI 3) 获取转换,进行计算并使用最终数字更新状态/UI。
我看到的选项:
a) (blech) ViewActionCreator.changeAmount()、changeFromCurrency()、changeToCurrency()、所有 API.fetchCurrency(),然后是 API.fetchConversion() 并希望 ajax 呼叫回来以正确的顺序或尝试找出 waitFor
b) 让 conversionStore 和 currencyStore 监听 amountStore 的变化,然后重新获取它们自己的数据
C) ?
我建议您查看 flux dispatcher 中的 waitFor() 方法。它允许您指定存储响应操作的更新顺序。
Facebook 的聊天应用程序有一个很好的例子,其中一个商店等待其他两个商店完成更新,然后再更新以响应操作。
https://github.com/facebook/flux/blob/master/examples/flux-chat/js/stores/UnreadThreadStore.js