Почему добавляются два элемента вместо одного?
Прошу прощения за столь короткое описание, но не знаю, что еще добавить
Я решил вашу проблему... однако, пожалуйста, обратитесь к разделу задавать вопрос.
Проблема здесь
function reducer(state, action) {
switch (action.type) {
case "push":
state.arr.push(action.payload);
return { arr: state.arr };
default:
}
}
Это должно быть так, это типичный поток редьюсера, использующий спред оператор.
function reducer(state, action) {
switch (action.type) {
case "push":
return {
...state,
// spread the numbers 0, 1, 2, 3, && action.paylod appends the number/item to the array
arr: [...state.arr, action.payload] // pass the action payload
}
default:
}
}
Рабочая демонстрация
Я понимаю, что мне нужно, чтобы массив соответствовал условию: state.arr !== return state.arr. Например, этот код тоже работает. const arr = Array.from(state.arr); arr.push(action.payload); возврат {обр};