createAsyncThunk是Redux Toolkit中的一个函数,用于创建异步的thunk action。它可以简化异步操作的处理,并且可以自动处理异步操作的开始、成功和失败等不同的状态。
在使用createAsyncThunk时,如果出现了错误但未触发rejected状态的情况,可能是由于以下几个原因:
针对这个问题,可以按照以下步骤进行排查和解决:
const fetchUser = createAsyncThunk(
'user/fetchUser',
async (userId, thunkAPI) => {
try {
const response = await api.fetchUser(userId);
return response.data;
} catch (error) {
return thunkAPI.rejectWithValue(error.message);
}
}
);
const userSlice = createSlice({
name: 'user',
initialState: { user: null, loading: false, error: null },
reducers: {},
extraReducers: (builder) => {
builder
.addCase(fetchUser.pending, (state) => {
state.loading = true;
state.error = null;
})
.addCase(fetchUser.fulfilled, (state, action) => {
state.loading = false;
state.user = action.payload;
})
.addCase(fetchUser.rejected, (state, action) => {
state.loading = false;
state.error = action.payload;
});
},
});
总结起来,要解决createAsyncThunk引发错误但未触发rejected状态的问题,需要确保正确处理异步操作的错误,并在对应的reducer中正确处理rejected状态的action。同时,还需要注意是否有其他中间件或插件可能干扰了createAsyncThunk的正常工作。
领取专属 10元无门槛券
手把手带您无忧上云