【发布时间】:2015-04-13 21:15:00
【问题描述】:
当使用 React 和 Reflux 时,商店只有一个事件供组件监听。假设:
- 我有一个包含产品列表的 ProductStore
- 我有两个组件可以监听这个商店的变化:一个对所有变化感兴趣的产品列表和一个只关心特定产品更新的详细信息页面
如何区分 'list_refreshed' 或 'item_updated' 事件,其中第一个事件表示产品列表已完全刷新,而后者仅表示单个项目的更新?
【问题讨论】:
当使用 React 和 Reflux 时,商店只有一个事件供组件监听。假设:
如何区分 'list_refreshed' 或 'item_updated' 事件,其中第一个事件表示产品列表已完全刷新,而后者仅表示单个项目的更新?
【问题讨论】:
不确定您的确切情况,但我为类似的事情所做的是更新商店中的布尔值或属性。然后将事件发送到顶级组件。然后,顶层组件将根据来自商店的布尔值的返回值,沿着链向下传递适当的更改。
可以在这里看到我从 ItemStore 获得一个布尔值:https://github.com/agmcleod/desert/blob/master/js/components/ProjectShow.react.js#L22
https://github.com/agmcleod/desert/blob/master/js/components/ProjectShow.react.js#L165
然后我将它传递给一个 ItemList 组件,如果它是真的,它将呈现一个带有文本框的空项目。我有一个动作触发商店将该布尔值设置为 true。
【讨论】: