Я пытаюсь изменить элемент списка в редукторе, но не могу быть уверен, что делаю что-то не так.
В документации по редуксу сказано, что:
То, что вы никогда не должны делать внутри редуктора:
Изменять его аргументы;
Выполняйте побочные эффекты, такие как вызовы API и переходы маршрутизации;
Вызовите не чистые функции, например Date.now () или Math.random ().
У меня есть список, хранящийся в моем магазине. Согласно действию, я просто изменю элемент в списке.
export const reducer: Reducer = (state, incomingAction) => {
if (state === undefined) {
return unloadedState;
}
switch (action.type) {
case 'RECEIVE_TASK_LIST':
return {
...state,
workList: action.workList
};
case 'RECEIVE_UPDATE_TASK':
if (state.workList !== undefined) {
let workItem = state.workList.find(work => work.id == action.task.workId);
let newList=workList.filter((work)=>work.id!=workItem.id);
return {
...state,
workList: newList
};
}
else{
return {
...state,
workList: action.workList
};
}
}
return state;
};
Избегает ли этот подход некоторых практик Redux?