@animalbtw

Как добавлять id в массив lists в redux?

При каждом вызове я хотел бы, чтобы в массив lists добавлялась строка id, получаемая из action.payload (мутаций быть не должно, это важно).
Этот код создает новый массив lists при вызове, тем самым перетирая значение, которое там уже было:

const initialUserState = {
    borders:[{ title: '', boardId: '1' ,lists: [] }]
}
export const boardsReducer = (state = initialUserState, action) => {
    switch (action.type)
    {
        case 'ADD_LIST':
            const {boardId, id} = action.payload
            const board = state[boardId]
            return { 
                      ...state,
                      [boardId]: { ...board, ['lists']: [id] }
                   }
    }
}
  • Вопрос задан
  • 88 просмотров
Пригласить эксперта
Ответы на вопрос 1
0xD34F
@0xD34F Куратор тега JavaScript
case 'ADD_LIST':
  const { boardId, id } = action.payload;
  return { 
    ...state,
    borders: state.borders.map(n => n.boardId === boardId
      ? { ...n, lists: [ ...n.lists, id ] }
      : n
    ),
  };
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы