SonyFan23
@SonyFan23

Как инвертировать значения state?

Есть Todo App и по клику заметка должна менять состояние на противоположное:
import { ADD_TODO, TOGGLE_TODO } from '../actions'

export const initialState = {
  todos: [
    { id: 0, text: 'Купить хлеб', completed: true }
  ]
}

При клике происходит обработка, то есть TOGGLE_TODO :
export function AddTodoReducer(state = initialState, action) {
  switch (action.type) {

    case ADD_TODO:
      return {
        ...state,
        todos: [...state.todos, { id: action.id, text: action.text, completed: false }]
      }

    case TOGGLE_TODO:
      let stateCopy = {...state}
      stateCopy.todos.map( todos => {
        if (todos.id === action.id) {
// Изменение на противоположное
          return [...todos, ]
        }
      })
      return state

    default:
      return state

  }

Не могу понять как правильно изменить state, при любой попытке сыпятся ошибки, подскажите, пожалуйста
  • Вопрос задан
  • 162 просмотра
Решения вопроса 1
0xD34F
@0xD34F
case TOGGLE_TODO:
  return {
    ...state,
    todos: state.todos.map(n => n.id === action.id
      ? { ...n, completed: !n.completed }
      : n
    ),
  };
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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