读取在React中作为属性传递的嵌套对象的属性

时间:2019-02-10 04:56:06

标签: javascript reactjs react-props

我正在通过Context将状态作为道具传递给我的React应用程序中的其他组件:

state = { user: null, username: null }

使用setState方法更新用户名和用户。

我可以读取username属性,但无法读取user属性,该属性应该是嵌套对象。 enter image description here 请查看照片:如果我传递了整个用户对象,则会收到一条错误消息,指出存在对象键,但是如果我尝试读取其中一个对象属性,则会抛出另一个错误,指出该属性为null。 enter image description here

这没有任何意义,因为我可以检查Context Provider的状态,并且嵌套对象的值都在那里:

enter image description here

有什么可以帮助的吗?-我完全感到困惑。

2 个答案:

答案 0 :(得分:0)

检查user是否不为空,因为如果usernull,它将调用null.username,这将引发错误。 setState()是异步的,这就是为什么该值可以为null的原因,它是您设置的初始值。

{
user &&
  <div className='div-player'>
   ...
   ...
  </div>
}

答案 1 :(得分:0)

这就是我能够实现的目标的方法:

{ user && user.username }

这不会引发错误,并允许我访问对象的嵌套属性。