Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当对象已更新时,React访问对象的属性将返回旧数据_Javascript_Reactjs - Fatal编程技术网

Javascript 当对象已更新时,React访问对象的属性将返回旧数据

Javascript 当对象已更新时,React访问对象的属性将返回旧数据,javascript,reactjs,Javascript,Reactjs,我的组件道具中有一个对象,我将其称为data。此对象将动态更新。然而,当我试图获取数据对象的属性时,出现了一个问题,它从对象返回旧数据,即使对象已更新 例如console.log(数据)返回 { items: [{name: "NEW NAME"}] } 但当我尝试直接访问属性时,情况并非如此,因为console.log(data.items[0].name)返回“旧名称”。 我很确定组件会更新,因为对象包含了新数据。问题是,它会呈现较旧的名称 另一个细节是,它返回以前的名称,例如,如

我的组件道具中有一个对象,我将其称为
data
。此对象将动态更新。然而,当我试图获取
数据
对象的属性时,出现了一个问题,它从对象返回旧数据,即使对象已更新

例如
console.log(数据)
返回

{
    items: [{name: "NEW NAME"}]
}
但当我尝试直接访问属性时,情况并非如此,因为
console.log(data.items[0].name)
返回
“旧名称”
。 我很确定组件会更新,因为对象包含了新数据。问题是,它会呈现较旧的名称

另一个细节是,它返回以前的名称,例如,如果我传递新数据
console.log(data)
返回

{
    items: [{name: "EVEN NEWER NAME"}]
}
console.log(data.items[0].name)
将返回
“新名称”


如果需要,我很乐意提供更多信息。

每次在浏览器的开发工具中更改对象的值时,都会对其进行评估。因此,即使在console.log运行时对象的名称是{name:“OLD name”},它的值稍后也会更新并显示{name:“NEW name”}


但是,当您控制台data.items[0].name时,它将返回一个字符串“OLD name”,并且在以后的开发工具中不会自动对其求值。我建议在页面上呈现它,而不是使用控制台检查它是否正确更新

在哪里更新数据?你能分享你的组件代码吗?我猜你是想直接修改道具或状态对象。它们是只读的,需要使用setState进行重置,例如使用值的新副本。它仍然呈现“旧名称”,这就是我发现问题的原因,并决定记录所有内容