В моем коде 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;
Да, здесь => {i !== action.payload}) на знаке равенства =>, он говорит, что должен вернуть значение в стрелочной функции. а на i !== action.payload он говорит, что ожидалось присвоение или вызов функции, а не увидел выражение.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Что ж, вы пропустили возврат значения внутри функции фильтра.
Посмотрите демо.
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.info(op)Аааа, я возвращал объект из своего метода фильтрации. Это все, что было
@ColeGonzales Да, это то, о чем говорится в первой строке моих ответов :)
О, ха-ха-ха. Я не уловил подпись ?
Оказывается, я просто возвращал объект из своего метода фильтрации. todos: [...state.todos.filter((todo, i) => {i !== action.payload})]
Просто убрал фигурные скобки из возврата к функции стрелки, и теперь все в порядке.
Вы покажете, в чем ошибка?