如何解决TypeError:状态在React和Redux上不可迭代
因此,我刚刚学习了redux,并尝试使用redux创建一个简单列表并做出反应。 但是当我单击按钮将项目添加到列表时,出现错误“状态不可迭代”
这是我的代码
减速器
function manageList(state = { items: [] },action) {
switch (action.type) {
case ADD_ITEM:
return { list: [...state,action.payload] };
case RESET_LIST:
return {
item: [...state,[]],};
default:
return state;
}
}
动作
export const ADD_ITEM = "ADD_ITEM";
export const RESET_LIST = "RESET_LIST";
export function addItem(text) {
return { type: ADD_ITEM,payload: text };
}
export function resetList() {
return { type: RESET_LIST };
}
解决方法
您要在数组中散布一个对象,以修复您应该按以下方式散布items属性:
function manageList(state = { items: [] },action) {
switch (action.type) {
case ADD_ITEM:
return { list: [...state.items,action.payload] };
case RESET_LIST:
return {
items: [...state.items,[]],};
default:
return state;
}
}
我还认为您应该将list
和item
替换为items
:
function manageList(state = { items: [] },action) {
switch (action.type) {
case ADD_ITEM:
return { items: [...state.items,};
default:
return state;
}
}
,
我认为您应该将它们作为“ state.items”传播,而不仅仅是“ state”。
赞:
f(2n+1) = $2^(n+2)$ - 2;
不是这样的:
item: [...state.items,[]]
,
export const commentReducer = (state = initialState,action) => {
switch (action.type) {
case COMMENT_REQUEST:
return {
...state,loading: true,};
case COMMENT_SUCCESS:
return {
...state,comment: [...state.comment,action.payload],};
case COMMENT_FAIL:
return { loading: false,error: action.payload };
default:
return state;
}
};
它对我有用
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。