例如,我有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
有可能吗?
答案 0 :(得分:5)
如果您使用react-redux
connect
功能将第二个组件连接到商店,则无需明确更新组件。您添加到商店的数据将仅作为prop
。
如果您需要(同步)对加载的数据执行某些操作,例如应用过滤器,或进行一些排序,我建议直接在mapStateToProps
函数中执行此操作,因为每次商店更新时都会自动调用此函数来计算组件的新props
。
如果您需要在第二个组件中做一些额外的工作,即根据以前的异步调用加载更多数据,则需要实现componentWillReceiveProps
函数。