我正在尝试更新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;
答案 0 :(得分:1)
代替
返回[...状态,{名称:action.payload}];
使用此
返回{...状态,名称:action.payload};
或
const payloadObj = {名称:action.payload}
返回{... state,... payloadObj};
答案 1 :(得分:0)
您的初始状态是JSON对象。
在语句的第一次运行期间返回[... state,{名称:action.payload}]; 它将以以下方式工作 ...状态=> ...初始状态=>名称:“ Arif” 因此,当您在数组中使用它时,它就像-> [name:“ Arif”,{name:action.payload}]是无效的。
您需要声明您的initialState如下
const initialState = [
{
name: "Arif"
}
];