假设我有一些初始状态,比如
const initialState = {
post: { comments: {
{0: {id:'1',name:'myname',statusdata: false}},
{1: {id:'2',name:'yourname',statusdata: true}},
},
};我想要作为操作的结果添加到数据中,但我想添加的数据将是一个数组。我该怎么做呢?
export default produce((draft, action) => {
switch (action.type) {
case UPDATE_NAME:
draft.posts.comments.name = action.payload;
break;
case CHANGE_STATUS:
draft.posts.comments.statusdata = !action.payload;
break;
default:
}
}, initialState);我有这个错误
Error: [Immer] Immer only supports setting array indices and the 'length' property发布于 2020-07-27 18:35:32
我对comments和action.payload的模式做了一些假设。尝试以下解决方案。
Object.values(draft.post.comments).map((comment){
if(comment.id == action.payload.id){
const updatedComment = Object.extend({}, comment, {"name": action.payload.name});
return updatedComment;
}
return comment;
})发布于 2020-07-28 06:09:55
我在努力
export default produce((draft, action) => {
switch (action.type) {
case CHANGE_STATUS:
draft.posts.comments[
draft.posts.comments.findIndex(i => i.id === action.payload)
].statusdata = action.payload;
return draft;
default:
}
}, initialState);https://stackoverflow.com/questions/63112934
复制相似问题