【发布时间】:2020-07-17 14:07:13
【问题描述】:
我尝试在我的状态中仅复制数组属性的值,但我没有让它按预期工作。当patchState 方法被调用而不是没有它时,应该更新状态。我做错了什么?
@Action(PostAttachment)
postAttachment(ctx: StateContext<EditEntityStateModel>, { preview, selectedEntityId }: PostAttachment) {
ctx.patchState({ currentlyUploading: true });
const previews = [...ctx.getState().previews.data];
console.log(previews);
const updatedData = previews.map(previewFromMapping => {
if (previewFromMapping.filename === preview.filename) {
previewFromMapping.status = 'uploading';
}
return singleData;
})
console.log('new', updatedData);
ctx.patchState({ previews: { ...ctx.getState().previews, data: updatedData }});
}
所以第二个和第一个console.log() 是相同的,但它们不应该。它们都显示完全相同的输出。所以我想,我不小心复制了给定数组的状态引用,而不是值本身。 但为什么?
【问题讨论】:
-
值
singleData在哪里定义?