Получение ошибки как «Недопустимая попытка распространить не повторяемый экземпляр» – состояние не обновляется

Вопрос: Я пытаюсь обновить состояние onClick но получаю сообщение об ошибке: Invalid attempt to spread non-iterable instance Не в состоянии разобраться в проблеме. кто-нибудь мне помочь? вот моя функция обновления: import { UPDATE_NAME } from "./Actions/types"; const initialState = { name: "Arif" }; const rootReducer = (state = initialState, action) => { switch (action.type) {

Вопрос:

Я пытаюсь обновить состояние onClick но получаю сообщение об ошибке:

Invalid attempt to spread non-iterable instance

Не в состоянии разобраться в проблеме. кто-нибудь мне помочь?

вот моя функция обновления:

import { UPDATE_NAME } from «./Actions/types»; const initialState = { name: «Arif» }; const rootReducer = (state = initialState, action) => { switch (action.type) { case UPDATE_NAME: console.log(«action.payload», action); return […state, { name: action.payload }]; } return state; }; export default rootReducer;

Live Demo

Лучший ответ:

Вместо

return [… state, {name: action.payload}];

использовать этот

return {… state, name: action.payload};

или же

const payloadObj = {имя: action.payload}

return {… state,… payloadObj};

Ответ №1

Ваше начальное состояние – объект JSON.

Во время первого запуска оператора return [… state, {name: action.payload}]; Он будет работать следующим образом… state =>… initialState => name: “Arif” Поскольку вы использовали его внутри массива, поэтому он вроде → [name: “Arif”, {name: action.payload}], который является недействительным.

Вы должны объявить ваш initialState следующим образом

const initialState = [ { name: «Arif» } ];

Оцените статью
Добавить комментарий