Неопределенная ошибка при получении javascript (React Native)

Я храню определенное значение ключа в базе данных. Но при получении значения ключа возникает ошибка неопределенный.

await DbHandler.fetch(codeStatus)
  .then((result) => {
    const codeEnabledObj = result[0];
    console.info('codeEnabledObj', codeEnabledObj);
    let codeEnabled = false;
    if (codeEnabledObj && codeEnabledObj.length > 0) { // this code not executing at all.
      codeEnabled = codeEnabledObj[0].isEnabled;
    }
    console.info('codeEnabled', codeEnabled); // getting false always
    console.info('codeEnabledObj.length[0]', codeEnabledObj.length); // undefined

  })
  .catch((error) => {

  });

Проблема в том, что он не входит внутрь, если условие и выдает ошибку, например undefined.

Но если мы напечатаем ответ от db fetch

'codeEnabledObj', { type: 'codeStatus', isEnabled: true } // This is my response

Какие-либо предложения?

где этот код входа? 'codeEnabledObj.length[0]', undefined

Jaydeep Galani 17.04.2019 12:13

во-первых, что за codeEnabledObj.length[0]? Думаю, это опечатка. и вы уверены, что ваш ответ является массивом? codeEnabledObj выглядит как объект из вашего ответа.

akcoban 17.04.2019 12:14

Пожалуйста, проверьте обновленный запрос.

Anilkumar iOS - ReactNative 17.04.2019 12:16

Ваш ответ не является массивом? почему вы проверяете длину?

akcoban 17.04.2019 12:19

даже словарь также мы можем проверить длину, верно? мы не можем?

Anilkumar iOS - ReactNative 17.04.2019 12:22
Поведение ключевого слова "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
5
50
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

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

Объекты не имеют свойства длины, как массив.

codeEnabledObj.length неправильно

использовать этот,

 Object.keys(codeEnabledObj).length 

РЕДАКТИРОВАТЬ :

codeEnabledObj[0].isEnabled должно быть только codeEnabledObj.isEnabled

Но, если бы я попытался получить значения codeEnabledObj, я все равно не смог бы получить.

Anilkumar iOS - ReactNative 17.04.2019 12:30

В codeEnabledObj нет длины свойства, более того, это не массив.. поэтому изменение условия будет работать, где isEmpty может быть функцией, используемой из пакет узла как underscore

if (isEmpty(codeEnabledObj)) { // ... } 

а также

codeEnabledObj.isEnabled

Спасибо.

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