Редукс редуктор для вставки / удаления элементов из массива и замены массива - PullRequest
0 голосов
/ 10 января 2020

Я новичок в Redux и у меня есть вопрос о том, как лучше всего написать редуктор для

  1. вставки / удаления элемента в / из массива; и
  2. замена самого массива другим массивом

Это то, что у меня сейчас есть:

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, поэтому вещи, которые принимают разные типы, основанные на разных вариантах использования, являются для меня совершенно новыми.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...