Синтаксическая ошибка в выражении регистра переключателя response-redux - PullRequest
0 голосов
/ 07 декабря 2018

В моем коде action.payload указывает на todo.index, поэтому мой случай REMOVE_TODO должен отфильтровывать задачу, если он имеет тот же индекс, что и событие, по которому было инициировано событие.Тем не менее, я получаю синтаксические ошибки во всем.Я испортил свои обертки и даже попытался переписать его с нуля, но не могу избавиться от этих синтаксических ошибок.Кто-то видит что-то, чего мне здесь не хватает ??Просто дайте мне знать, если вам нужна дополнительная информация, пожалуйста.Спасибо всем!

import { ADD_TODO } from '../constants/action-types'; 
import { REMOVE_TODO } from '../constants/action-types';

const initialState = {
  todos: []
};

const rootReducer = (state = initialState, action) => {
  switch (action.type) {
    case ADD_TODO:
    return {
        ...state,
        todos: [...state.todos, action.payload]
    }

    case REMOVE_TODO:
    return {
      ...state,
      todos: [...state.todos.filter((todo, i) => {i  !== action.payload})]
    }

    default:
      return state;
  }
}

export default rootReducer;

Ответы [ 2 ]

0 голосов
/ 07 декабря 2018

Оказывается, я просто возвращал объект из моего метода фильтра.todos: [...state.todos.filter((todo, i) => {i !== action.payload})] Просто убрал фигурные скобки из функции возврата на стрелку, и теперь все хорошо.

0 голосов
/ 07 декабря 2018

Ну, вы пропустили возврат значения внутри функции фильтра.

Посмотрите на демонстрацию.

const initialState = {
  todos: [1,2,3,7,8,5]
};

const rootReducer = (state = initialState, action) => {
  switch (action.type) {
    case 'ADD_TODO':
    return {
        ...state,
        todos: [...state.todos, action.payload]
    }

    case 'REMOVE_TODO':
    return {
      ...state,
      todos: [...state.todos.filter((todo, i) => i  !== action.payload)]
    }

    default:
      return state;
  }
}

let op = rootReducer({todos:[1,2,3,4,5,6]},{type:'REMOVE_TODO',payload:1});
console.log(op)
...