Функциональные значения компонентов и объектов

Я работаю над побочным проектом, и мне сложно распечатать значения объектов.

Мой макет кода выглядит следующим образом:

компонент на основе классов

this.state = {
  itemDetails: []
};

axios.get(`${ROOT_URL}/${itemId}?${API_KEY}`).then(res => {
  console.info(res.data);
  this.setState({ itemDetails: res.data })
});

возвращает эти данные json

Функциональные значения компонентов и объектов

Затем у меня есть функциональная составляющая

    const MovieDetails = (props) => {
  const arrayofKey = Object.values(props.itemDetails).map((r) => (
    <div>
      <a href='#t' className='item-name'>{r.original_title}</a>
    </div>
  ))
  return <div className='item-details'>{arrayofKey}</div>
}

Что предназначено для возврата значения original_title (Aquaman), однако я получаю сообщение об ошибке «TypeError: невозможно прочитать свойство original_title со значением null»

Любая помощь будет оценена

Почему вы используете Object.values(props.itemDetails) и повторяете его? Судя по тому, как это выглядит в вашей карте, функция r большую часть времени будет строкой. Вам следует просто полностью удалить функцию карты и напрямую использовать props.itemDetails.original_title.

dotconnor 18.12.2018 02:32

Я все еще изучаю JS, поэтому временами я немного теряюсь, я удалил функцию карты, но все еще не уверен в синтаксисе ... если не так уж много проблем, не могли бы вы опубликовать решение?

invrt 18.12.2018 02:41

Что вы ожидаете от HTML для вывода функции MovieDetails?

dotconnor 18.12.2018 02:42

@dotconnor пока только original_title, остальное я могу разобрать

invrt 18.12.2018 02:47

Разве это не должно быть Object.keys, а не Object.values для массива ключей?

mike510a 18.12.2018 02:49
Поведение ключевого слова "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) для оценки ваших знаний,...
0
5
68
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Следующего должно хватить только для показа заголовка.

const MovieDetails = (props) => {
  const {itemDetails} = props; 
  return (
    <div className='item-details'>
      <a href='#t' className='item-name'>{itemDetails.original_title}</a>
    </div>
  );
}

Вы были на 4 секунды быстрее! Но вы также всегда должны объяснять решение, а не только почтовый индекс.

Nurbol Alpysbayev 18.12.2018 02:51

Я проголосовал за, так что вам не грустно, что OP выбрал мой ответ!

Nurbol Alpysbayev 18.12.2018 02:59
Ответ принят как подходящий

Из ваших комментариев я понял, что вы пытаетесь достичь всего этого кода:

const MovieDetails = (props) => {
  return <div className='item-details'>
    <div>
      <a href='#t' className='item-name'>{props.itemDetails.original_title}</a>
    </div>
  </div>
}

По неизвестным причинам у вас там был избыточный и неправильный код. Я просто удалил его и переместил div с заголовком из цикла.

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

invrt 18.12.2018 02:55

@invrt Да, я сомневался, представляют ли данные json массив объектов или просто объект, тогда я посмотрел на URL-адрес ${ROOT_URL}/${itemId} и сделал вывод, что это последний случай!

Nurbol Alpysbayev 18.12.2018 02:57

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