Reactjs 如何将对象添加到现有对象中,类似于在数组中执行push,但在reducer中执行redux
目标:能够添加、替换或删除对象中的项目 当前对象的外观:Reactjs 如何将对象添加到现有对象中,类似于在数组中执行push,但在reducer中执行redux,reactjs,object,redux,Reactjs,Object,Redux,目标:能够添加、替换或删除对象中的项目 当前对象的外观: {123:{…},1234:[…},12345:{…} 我有一个reducer,我试图在其中添加一个新项或替换现有项到类似数组的对象中 因此,我: 返回{…state,all:state.all[data.id]=data} 但这一切都是为了擦除整个all对象,并将其设置为一个对象。我非常希望有类似镜像.push功能的功能 我还需要对更新的项目执行此操作,以便替换对象列表中的项目 最后,我想我知道如何删除,但只是为了确保这是正确的 del
{123:{…},1234:[…},12345:{…}
我有一个reducer,我试图在其中添加一个新项或替换现有项到类似数组的对象中
因此,我:
返回{…state,all:state.all[data.id]=data}
但这一切都是为了擦除整个all
对象,并将其设置为一个对象。我非常希望有类似镜像.push
功能的功能
我还需要对更新的项目执行此操作,以便替换对象列表中的项目
最后,我想我知道如何删除,但只是为了确保这是正确的
delete state.all[data.id];
return state
首先,不要突变状态:
const newState = {...state};
然后将新状态中的all值更新为您想要的值
const { all } = newState;
all[data.id] = data;
最后,返回新的更新状态
return {...state, ...{ all }};
首先,不要突变状态:
const newState = {...state};
然后将新状态中的all值更新为您想要的值
const { all } = newState;
all[data.id] = data;
最后,返回新的更新状态
return {...state, ...{ all }};
只是
返回{…state,…all}
@TaylorAustin会传播“all”值的内容,而不是添加all:{}对于对象。好的,对于更新,你会做同样正确的事情吗?因为这会用列表中的键覆盖当前对象吗?我是否以正确的方式进行了删除?事实上,现在我想起来了,我可能需要制作一个副本,这样类似于delete newState.all[data.id]
之后就是返回newState
?如果你想删除这个值,那么是的,这是正确的。难道不是返回{…state,…all}
@TaylorAustin会传播“all”值的内容而不是添加all:{}对于对象。好的,对于更新,你会做同样正确的事情吗?因为这会用列表中的键覆盖当前对象吗?我是否以正确的方式进行了删除?事实上,现在我想起来了,我可能需要制作一个副本,这样类似于delete newState.all[data.id]
然后返回newState?如果要删除该值,则选择“是”,这是正确的。