Неопределенная ошибка при получении в javascript (React Native) - PullRequest
1 голос
/ 17 апреля 2019

Я храню определенное значение ключа в базе данных.Но, при извлечении значения ключа, получаем undefined error.

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

  })
  .catch((error) => {

  });

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

Но, Если мы распечатаем ответ от db fetch

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

Есть предложения?

Ответы [ 2 ]

2 голосов
/ 17 апреля 2019

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

codeEnabledObj.length неверно

используйте это,

 Object.keys(codeEnabledObj).length 

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

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

0 голосов
/ 17 апреля 2019

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

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

и

codeEnabledObj.isEnabled

Спасибо.

...