Вынесение id в prepareReducer
create.preparedReducer - https://redux-toolkit.js.org/api/createSlice#createpreparedreducer
Parameters
prepareActionprepare callback The - подготовка функции, где будет прописана функция, обязательно должен возвращать payload
reducer The slice case reducer to use - редьюсер
Изначально:
App.tsx
const createTodolist = (title: string, ) => {
dispatch(createTodolistAC({title, id: nanoid()}))
}
В SliceReducer Todolis (создание todolist):
createTodolistAC: creators.reducer<{title: string, id: string}>((state, action) => {
const newTodolist: Todolist = {
title: action.payload.title,
filter: “all”,
id: action.payload.title
}
state.push(newTodolist)
})
Как можно сделать используя prepareReducer - добавляем две функции
App.tsx
const createTodolist = (title: string, ) => {
dispatch(createTodolistAC(title))
}
В SliceReducer Todolis (создание todolist):
createTodolistAC: creators.preparedReducer((title: string) => {
return {
payload: {
id: nanoid(),
title: title
}
}
}, (state, action) => {
state.push({…action.payload, filter: ‘all’})
})