我正在通过Context将状态作为道具传递给我的React应用程序中的其他组件:
state = { user: null, username: null }
使用setState方法更新用户名和用户。
我可以读取username属性,但无法读取user属性,该属性应该是嵌套对象。 请查看照片:如果我传递了整个用户对象,则会收到一条错误消息,指出存在对象键,但是如果我尝试读取其中一个对象属性,则会抛出另一个错误,指出该属性为null。
这没有任何意义,因为我可以检查Context Provider的状态,并且嵌套对象的值都在那里:
有什么可以帮助的吗?-我完全感到困惑。
答案 0 :(得分:0)
检查user
是否不为空,因为如果user
为null
,它将调用null.username
,这将引发错误。 setState()
是异步的,这就是为什么该值可以为null的原因,它是您设置的初始值。
{
user &&
<div className='div-player'>
...
...
</div>
}
答案 1 :(得分:0)
这就是我能够实现的目标的方法:
{ user && user.username }
这不会引发错误,并允许我访问对象的嵌套属性。