当请求出现异常时,action.payload中没有值,对应的值是在action.error中
来源:10-8 【redux-toolkit】sotre配置(configureStore)与异步处理(createAsyncThunk)

修斯锋丶
2022-12-22
当请求出现异常时,action.payload中没有值,对应的值是在action.error中,所以原先的fetchFail方法不适用,这种情况下是改fetchFail,还是有其他的处理,这里没明白,课程中也没有看到对应的说明
写回答
1回答
-
你想想 fulfilled 的时候为什么 action.payload 有值,因为 return 了数据;
异常的时候,RTK工具只是对之后要执行的代码块进行选择(就像 switch 中做一次 case),但并没有帮你捕获错误(无 return / throw 任何数据或错误);
以上是我个人对 RTK 这个工具集的理解,你可以试一试在请求成功时不 return ,action.payload 也是空的;
RTK 工具并不是完美的,当异步 action 变多的时候,你的 extraReducers 也会越来越臃肿,在浏览器上有一行提示: 在 RTK2.0 的版本将移除 extraReducers 它。
012023-02-02
相似问题