Чтение свойств вложенного объекта, переданного как свойство в React - PullRequest
0 голосов
/ 10 февраля 2019

Я передаю состояние в качестве реквизита через Context другим компонентам в моем приложении React:

state = { user: null, username: null }

И имя пользователя, и пользователь обновляются с помощью методов setState.

Я могу прочитать свойство username, но не могу прочитать свойство user, которое должно быть вложенным объектом.enter image description here Пожалуйста, смотрите фотографии: если я передаю весь пользовательский объект, я получаю сообщение об ошибке, говорящее, что есть ключи объекта, но если я пытаюсь прочитать одно из свойств объекта, оно выдает другую ошибку, говорящуючто свойство является нулевым.enter image description here

Это не имеет никакого смысла, потому что я могу проверить состояние поставщика контекста и все значения вложенного объекта находятся там:

enter image description here

Может ли кто-нибудь помочь с этим - я в полном замешательстве.

Ответы [ 2 ]

0 голосов
/ 10 февраля 2019

Вот как мне удалось добиться того, что я пытался сделать:

{ user && user.username }

Это не выдает ошибку и позволяет мне получить доступ к вложенным свойствам объекта.

0 голосов
/ 10 февраля 2019

Проверьте, не является ли user нулевым, потому что, если user равно null, он вызовет null.username, что приведет к ошибке.setState() является асинхронным, поэтому значение может быть нулевым, что является заданным вами начальным значением.

{
user &&
  <div className='div-player'>
   ...
   ...
  </div>
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...