Реагировать. js - Невозможно получить доступ к значению элемента в массиве объектов - PullRequest
0 голосов
/ 09 марта 2020

Я чувствую себя паршивым разработчиком, который приходит к вам с этим вопросом, но я иду по кругу.

Я использую React / JS, и вот проблема:

Код импортирует массив объектов из моего личного API через ajax (ax ios) .
Мое состояние ожидает массив: const [ films, setFilms ] = useState([]); и получает его.

Действительно, response.result из моего API - это массив из 20 mov ie объектов :

enter image description here

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

Теперь, в React, когда я проверяю, чтобы вызвать один mov ie следующим образом:
console.log("films", films); => WORKS (показывает снимок экрана выше) ,
console.log("film", films[0]); => WORKS (показывает первый элемент, объект) ,

Но если я попытаюсь ввести его (любые свойства) :
console.log("film", films[0].id); ИЛИ console.log("film", films[0]["id"]);
=> FAILS: Ошибка типа: films [0] не определена !

Я знаю, что что-то упустил. Я получаю массив объектов, может ввести элемент, но не может прочитать его свойства ...

Я чувствую себя потерянным ... Помощь? :)
Спасибо

Ответы [ 2 ]

0 голосов
/ 09 марта 2020

Возможно, ваш console.log("films", films); метод вызывается пару раз, даже если фильмы еще не загружены. Когда вы пытаетесь записывать фильмы, сначала он записывает нулевой или пустой массив, но затем показывает правильный список. С другой стороны, если у вас есть console.log("film", films[0].id);, ваше приложение обработает sh, потому что оно было вызвано, когда массив пленок нулевой или пустой.

Поэтому убедитесь, что длина вашего массива фильмов больше 0, прежде чем каротаж.

0 голосов
/ 09 марта 2020

попробуйте использовать оператор && следующим образом:

console.log("film", films[0] && films[0].id);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...