【发布时间】:2021-06-30 19:08:49
【问题描述】:
我有一个这样的切片:
const authSlice = createSlice({
name: "auth",
initialState: {
...initialUserInfo,
...initialBasicAsyncState,
},
reducers: {
setUser: (state, { payload }: PayloadAction<{ userObj: User }>) => {
const { id, email, googleId, facebookId } = payload.userObj;
state.id = id;
state.email = email;
if (googleId) state.googleId = googleId;
if (facebookId) state.facebookId = facebookId;
},
clearUser: (state) => {
state.id = "";
state.email = "";
state.googleId = "";
state.facebookId = "";
},
},
extraReducers: (builder) =>
builder
.addCase(getUser.pending, (state, action) => {
state.isLoading = true;
})
.addCase(getUser.fulfilled, (state, action) => {
state.isLoading = false;
state.isSuccess = true;
state.errors = null;
})
.addCase(getUser.rejected, (state, action) => {
state.isLoading = false;
if (action.payload) {
state.errors = action.payload;
} else if (action.error) state.errors = action.error;
}),
});
我想为以extraReducers 开头的部分编写一段可重用的代码,因为我将在多个切片中处理相同的异步请求。我阅读了文档,但仍然无法理解如何完成此操作。
【问题讨论】:
标签: reactjs typescript react-redux redux-toolkit