javascript-在React Redux应用程序中处理异步错误

有时Dan回推了

“当我看到

`.then(() => dispatch(...)).catch(...)` 

在React项目中.如果组件在调度过程中抛出,您将陷入困境.”

并说解决方案是如此简单.只要不要在呈现UI的then()之后链接catch().而是将错误处理程序作为第二个arg传递给then().

有人可以解释为什么会这样.

在我的情况下,我正在进行ajax调用,因此我假设我将进入200范围内的任何内容作为服务器响应,而进入catch范围内的200以外的内容(即服务器错误).我在这里想念什么吗?

最佳答案
因此Dan的意思是,在Async请求中,您希望成功调用会导致.then()被调用,并且由于您正在.then()中调度一个动作,而该动作又将更新redux存储,从而更新UI,因此,如果UI更新过程中出现任何错误,也会调用.catch(),而您希望仅当服务器返回错误时才调用它.

解决的办法是像

.then(
function (){
    //handle success
    dispatch({...})
},
function () {
    //handle reject() and Error for Async request

})

转载注明原文:javascript-在React Redux应用程序中处理异步错误 - 代码日志