Я новичок в Redux и у меня есть вопрос о том, как лучше всего написать редуктор для
- вставки / удаления элемента в / из массива; и
- замена самого массива другим массивом
Это то, что у меня сейчас есть:
const arrayReducer = (state = [], action) => {
switch (action.type) {
case ADD_ELEM:
return [...state, action.payload]; // payload expected to be an element
case REMOVE_ELEM:
return state.filter(
elem => (elem.id !== action.payload.id) // payload also expected to be an element
);
case UPDATE_ARRAY:
return action.payload; // payload expected to be an array?
default:
return state;
}
Проблема с моим кодом заключается в том, что, как в комментариях указано несоответствие типа action.payload
. Есть ли лучший способ структурировать этот тип редуктора?
Спасибо всем.
Ps: Спасибо за ответы. Я родом из Python / Java, поэтому вещи, которые принимают разные типы, основанные на разных вариантах использования, являются для меня совершенно новыми.