extraReducers
При создании тудулиста добавляется тудулист в массив в todolistsSlice, но еще нужно добавлять пустой массив тасок для созданного тудулиста. Т.е. нужно в tasksSlice обработать case, созданный в todolistsSlice. Сделать это в reducers нельзя, потому что в todolistsSlice имя экшена будет todolists/addTodolist, а в tasksSlice - tasks/addTodolist.
Для решения проблемы используйте свойство slice extraReducers, которое используется для обработки actions из внешних слайсов или асинхронных операций createAsyncThunk. extraReducers используется с ‘builder callback’ notation, как и createReducer.
Ссылка: https://redux-toolkit.js.org/api/createslice#extrareducers
Скопируйте кейсы createTodolistAC и deleteTodolistAC в extraReducers слайса тасок:
export const tasksSlice = createSlice({
/…/
extraReducers: builder => {
builder
.addCase(createTodolistAC, (state, action) => {
state[action.payload.id] = []
})
.addCase(deleteTodolistAC, (state, action) => {
delete state[action.payload.id]
})
},
/…/
})