【发布时间】:2019-06-03 22:31:00
【问题描述】:
我目前正在研究一个简单的用例:获取数据并显示它。 为此,我做了 3 个动作:加载、失败、成功,我根据我的功能调度。
问题是,有时,成功是在加载后触发的......我只在 mapStateToProps 中收到一个调用,而不是两个。
我的代码是这样在获取数据时更新 UI 的:
componentDidUpdate(prevProps, prevState, snapshot) {
if (prevProps.isLoading && !this.props.isLoading) {
if (this.props.error) {
this.enqueueSnackbar(this.props.error, "error");
return;
}
this.enqueueSnackbar("Success!", "success");
this.props.history.push(routes.ITEMS);
}
}
isLoading 总是假的,因为我只是收到成功,因为收货的速度...
我尝试了超时并且它 100% 的时间都在工作,但我想要一个更清洁的解决方案...
有什么想法吗?
【问题讨论】:
-
你能不能把你的action的代码贴出来
-
对于我的数据获取操作,我使用 redux-saga。 saga 处理 fetch(不是 reducer),当它获得数据时,它会分派正确的事件(数据成功或错误),由 reducer 处理,相应地更新状态。
标签: reactjs redux react-redux