如何在redux中等待数据

时间:2017-07-17 15:41:33

标签: reactjs redux react-redux

例如,我有2个组件。在第一天我在服务器上执行异步调用,并在调度操作后将响应放入redux存储。在第二个组件中,我想等待响应来存储并做完一些工作。

第一个组件看起来像

const response = await api.call(); // async call on server
dispatch(putToTheStore(response)); // put data to the store

第二个组件看起来像

await props.response; // here i want to wait data come to store

// and after it actually come to the store, do some work

有可能吗?

1 个答案:

答案 0 :(得分:5)

如果您使用react-redux connect功能将第二个组件连接到商店,则无需明确更新组件。您添加到商店的数据将仅作为prop

提供给组件

如果您需要(同步)对加载的数据执行某些操作,例如应用过滤器,或进行一些排序,我建议直接在mapStateToProps函数中执行此操作,因为每次商店更新时都会自动调用此函数来计算组件的新props

如果您需要在第二个组件中做一些额外的工作,即根据以前的异步调用加载更多数据,则需要实现componentWillReceiveProps函数。