Почему не удается отреагировать на чтение свойства объекта API Google Places "open_now"?

Я получаю эту ошибку: × TypeError: невозможно прочитать свойство open_now из undefined

render(){
   9 |     let ob = this.props.data.opening_hours;
> 10 |     if (ob.open_now !== undefined){
  11 |         console.info(ob.open_now);
  12 |     }
  13 |     else{

Это то, что я получаю, когда распечатываю только часы работы

opening_hours: {
    open_now: true,
    periods: [],
    weekday_text: [
        "Monday: 10:00 AM – 9:00 PM",
        "Tuesday: 10:00 AM – 9:00 PM",
        "Wednesday: 10:00 AM – 9:00 PM",
        "Thursday: 10:00 AM – 9:00 PM",
        "Friday: 10:00 AM – 9:00 PM",
        "Saturday: 10:00 AM – 9:00 PM",
        "Sunday: 10:00 AM – 8:00 PM"
    ]
},

но как только я пытаюсь получить open_now или weekday_texts, возникает та же ошибка. Я могу получить доступ ко всему внутри объекта JSON, кроме этого. API мест Google больше не работает? Мне удалось получить веб-сайт, номер телефона и имя, я не уверен, почему он вылетает только в час работы Почему не удается отреагировать на чтение свойства объекта API Google Places "open_now"?

Очевидно, что вы делаете что-то не так. Разместите более полный код. И ваш чек должен быть как минимум if (ob && ob.open_now !== undefined) {

dfsq 24.03.2018 20:38

Как вы печатаете только свойство opening_hours?

Tico 24.03.2018 20:41

спасибо @dfsq, не знал, что это было в javascript, теперь он работает,

benoit 24.03.2018 20:44

@Tico Я сделал console.info (result.opening_hours.open_now), который дал мне ошибку, но когда я сделал console.info (result.opening_hours), он напечатал этот объект. Похоже, когда я пытаюсь напечатать что-то внутри объекта open_hours, у меня возникает ошибка, но я думаю, что я ее решил.

benoit 24.03.2018 20:45

Я понимаю, что журналы консоли Chrome devtools можно лениво оценивать, поэтому, если ссылка на переменную изменяется после console.info, журнал может вводить в заблуждение. В любом случае решение @ dfsq выглядит правильным. Вы также можете использовать что-то вроде функции lodash get для безопасного доступа к глубоким свойствам (возвращает undefined, а не выдает ошибку, если какая-либо часть цепочки не определена).

Shane Cavaliere 25.03.2018 15:46
Поведение ключевого слова "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
223
0

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