Как получить значение из массива объектов? - PullRequest
0 голосов
/ 31 января 2019

У меня есть приложение реагирования, и я использую избыточность и реквизит для добавления массива объектов в мой компонент, и я их получаю.Но я не могу получить доступ к определенному свойству внутри одного из объектов, которые находятся в этом массиве.

При этом:

console.log(this.props.users)

enter image description here Я получаю перечисленный массивсо всеми объектами внутри.Но когда мне нужно получить доступ к определенному объекту или свойству этого объекта, например:

console.log(this.props.users[0])
console.log(this.props.users[0].name)

Я получаю сообщение об ошибке:

Cannot read property '0' of undefined

Но когда я перебираю массив с помощью map ()метод у меня есть доступ к нему, он работает.Почему я не могу получить к нему доступ нормально?

Ответы [ 2 ]

0 голосов
/ 31 января 2019

Вы пытаетесь получить доступ к свойствам this.props.users до его загрузки.Ваш компонент рендерится, не дожидаясь получения ваших данных.Когда вы console.log(this.props.users) говорите, что получаете массив, но, кроме того, он, вероятно, регистрирует undefined хотя бы один раз, когда компонент рендерится до загрузки this.props.users.

У вас есть несколько вариантов.Вы можете сделать это в самом верху вашего метода рендеринга, чтобы предотвратить выполнение остальной части кода в методе:

if (!this.props.users) return null;

После того, как данные получены и реквизит изменяется, будет вызван метод рендеринга.снова.

Другой вариант - объявить значение по умолчанию пустого массива для users в вашем редукторе.

0 голосов
/ 31 января 2019

Может быть, когда вы выполняете эту строку this.props.users не определено.Проверьте поток, в который вы добавили console.log(this.props.users[0])

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...