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

时间:2018-08-31 13:06:51

标签: javascript reactjs

我在组件道具中有一个对象,我将其称为data。该对象是动态更新的。但是,当我尝试获取data对象的属性时,会出现问题,即使对象已更新,它也会从该对象返回旧数据。

例如console.log(data)返回

{
    items: [{name: "NEW NAME"}]
}

但是,当我尝试直接访问属性时情况并非如此,因为console.log(data.items[0].name)返回"OLD NAME"。 我很确定组件会更新,因为对象包含新数据。问题在于它会渲染旧名称。

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

{
    items: [{name: "EVEN NEWER NAME"}]
}

console.log(data.items[0].name)将返回"NEW NAME"

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

1 个答案:

答案 0 :(得分:1)

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

但是,当您控制台data.items [0] .name时,它将返回字符串“ OLD NAME”,稍后它不会在Dev工具中自动评估。我建议将其呈现在页面上,而不是使用控制台来检查它是否正确更新