Ошибка API React (необработанный отказ (TypeError): невозможно прочитать свойство «0» неопределенного значения)

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

Ошибка, которую я получаю, это 'Unhandled Rejection (TypeError): Cannot read property '0' of undefined'.
Что указывает мне на эту строку в моем коде: this.setState({person: data.results[0], loading: false });

(Компонент, в котором он находится.)

async componentDidMount(){ const url = "https://api.floraxchange.nl/artikel?relatieid=215&Code=214325432"; const response = await fetch(url); const data = await response.json(); this.setState({person: data.results[0], loading: false }); }

Похоже, что результаты из data.results не определены. Попробуйте записать данные, чтобы увидеть, как они выглядят (например, console.info(data) после их возврата).

Don Brody 25.02.2019 21:47

@DonBrody возвращает это: (40) [{…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}] 0: {ID: 268431, Code: "12 TCMIX", Naam: "Dragonmix in Terra Cotta met schotel", Potmaat: "13 cm", PotmaatNumeriek: 13, …}

GreSlime 25.02.2019 21:52

я думаю, что это должно быть ({человек: data.result[0], loading:false });

Hasta Tamang 25.02.2019 21:55

@HastaTamangThat выдает ту же ошибку, но заменяет «0» на «предметы». В любом случае я ценю вашу помощь :)

GreSlime 25.02.2019 21:57

Похоже, массив results возвращается на верхнем уровне. Так что вы, вероятно, можете попробовать data[0] вместо data.results[0].

Don Brody 25.02.2019 22:10

@DonBrody, это работает как шарм, большое всем спасибо!

GreSlime 25.02.2019 22:18

Рад помочь :)

Don Brody 25.02.2019 22:24
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
7
415
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

(Спасибо @DonBrody, поэтому я могу закрыть этот вопрос)

Похоже, массив результатов возвращается на верхнем уровне. Так что вы, вероятно, можете попробовать data[0] вместо data.results[0]

Всем большое спасибо <3

Другие вопросы по теме