考虑以下情况:
当用户导航到页面时,会调度两个异步 Redux 操作来并行获取两组相关数据。如果这些提取中的任何一个失败,组件都会检测到它,该组件将在下一个周期呈现错误组件,进而调度clearState
安装时的动作。
然而,其他操作仍有待解决/拒绝,并且会破坏干净状态。目的是中断此(最好是许多其他)挂起的异步操作,当clearState
称为动作创建者。 AFAIK,无论如何,悬而未决的承诺都应该解决/响应。
我首先想到的是向每个减速器引入 INTERRUPTED 标志,但我无法理解如何使用它来使以下成功/错误操作不影响/返回默认状态。
如何做到这一点,同时将复杂性保持在最低限度?
我有一个类似的问题,我使用 jquery 来发出 ajax 请求和 redux-thunk 中间件。
解决方案是让你的动作创建者返回承诺,这个承诺将由调度函数返回,然后你就可以中止它。
在我的动作创建器中,我有这样的东西:
function doSomething() {
return (dispatch) => {
return $.ajax(...).done(...).fail(...);
}
}
然后在我的组件中我有:
componentDidMount(){
this.myPromise = this.props.dispatch(doSomething());
}
somefnct() {
this.myPromise.abort();
}
也看看这个comment丹·阿布拉莫夫。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)