createAction - добавление действия Flashcards

(1 cards)

1
Q

createAction

A

Создаем action.common:
import { createAction } from “@reduxjs/toolkit”

export const clearTasksAndTodolists = createAction(“common/clear-tasks-todolists”)

Прописываем в extraReducers:
extraReducers: (builder) => {
builder.addCase(clearTasksAndTodolists.type, () => {
return []
})
},

Вызываем при выходе:
logoutTC: create.asyncThunk(
async (_arg, { dispatch, rejectWithValue }) => {
// логика санки для авторизации
try {
dispatch(setAppStatusAC({ status: “loading” }))
const res = await authApi.logout()
if (res.data.resultCode === ResultCode.Success) {
dispatch(clearTasksAndTodolists())
dispatch(setAppStatusAC({ status: “succeeded” }))
localStorage.removeItem(AUTH_TOKEN)
return { isLoggedIn: false }
} else {
handleServerAppError(res.data, dispatch)
return rejectWithValue(null)
}
} catch (error) {
handleServerNetworkError(error, dispatch)
return rejectWithValue(null)
}
},
{
fulfilled: (state, action) => {
state.isLoggedIn = action.payload.isLoggedIn
},
},
),

How well did you know this?
1
Not at all
2
3
4
5
Perfectly