[英]React setState hook's previous param object gives inconsistent values
我正在使用useEffect
钩子来触发 setState 更新。 我从上一个参数中得到了一些奇怪且不一致的行为:
useEffect(() => {
setCurrentPicturesObject((existing) => {
const clone = {...existing}
console.log({
existing,
existingdotNocolor: existing.nocolor,
selectedColorState,
selectedColorArray: existing["nocolor"],
clone
});
return existing
});
}, [selectedColorState]);
所以你会期望对象的克隆会返回一个具有相同键和值的对象,对吗? 不在这里:
以某种方式existing
从一个带有两个字符串数组的nocolor
的对象切换到一个带有一个字符串的数组。 同样,当我尝试访问nocolor
道具时,它只返回一个包含一个字符串的数组。
我无法理解。 一旦我尝试使用除直接控制台记录之外的任何其他方式访问它时, existing
更改?
不完全确定细节,但基本上似乎控制台正在记录对象的实时视图,这是一个静态字符串。 此答案中的更多信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.