在页面dispatch失败后,再次进入该页面,无法执行这个dispatch,需要刷新页面才能正常执行
你可以处理一下这个报错,或者手工触发一下
@chenshuai2144 这个错误在request文件里有处理,是升级新版本后出现的问题
具体情况是:
1.dispatch indexUser/indexUser(User页面)时,token过期了,返回错误信息,处理错误返回登录页,



2.重新登录,再次进入User页面,这个dispatch不会执行(如果reducer中保存了错误的信息,再次进入页面会报错,试过在effects有错误时不执行reducer,但是会一直处于loading状态,redux devtool里dispatch没有start),其他页面的dispatch可以正常执行
上面的情况不是某一个特定的dispatch,只要dispatch时返回了错误,同一个dispatch无法再次执行,需要刷新页面(在登录页刷新也可以,在其他页面刷新也可以,只要在再次请求这个dispatch前有刷新,再次进入就能正常执行)
你可以在 request 中不要抛出异常,直接 reslove,然后跳转去登陆。
@chenshuai2144 试了,再次进入的时候仍然dispatch执行不了,需要刷新
遇到了同样的问题,如果在某个 model 里的 effect 内发生了未补获的错误,会导致这个 model 整个都 dispatch 不了了,包括 dva-loading 的 loading 状态也没取消。
遇到了同样的问题,如果在某个 model 里的 effect 内发生了未补获的错误,会导致这个 model 整个都 dispatch 不了了,包括 dva-loading 的 loading 状态也没取消。
这个问题有好的处理方法吗? 我也遇到同样的问题 @aprilandjan
@denghp 目前只有尽量避免 effects 里有未捕获的错误,多用 try catch 包裹。没深入去研究有没有更好的处理办法...
这个为什么不解决一下呢?很奇怪诶
Most helpful comment
遇到了同样的问题,如果在某个 model 里的 effect 内发生了未补获的错误,会导致这个 model 整个都 dispatch 不了了,包括 dva-loading 的 loading 状态也没取消。