-2

Detecting an undefined/null object property in an aplication vue.

I can not resolve this object problem not defined.

I am using a vue application with esLint. But I believe this is only solved with javascript.

Thank you guys.

var Data = (typeof data.method.expiration_date !== 'undefined') ? date.formatDate(String(data.method.expiration_date), 'DD/MM/YYYY') : ''

Error:

Uncaught (in promise) TypeError: Cannot read property 'expiration_date' of null
Samuel Liew
  • 76,741
  • 107
  • 159
  • 260
marcelo.delta
  • 2,730
  • 5
  • 36
  • 71
  • Possible duplicate of [JavaScript "cannot read property "bar" of undefined](https://stackoverflow.com/questions/8004617/javascript-cannot-read-property-bar-of-undefined) – adiga Jul 14 '19 at 05:47

3 Answers3

1

You need to add check before accessing properties of object, here i am using && operator ( short circuiting method ) to check existence of value before accessing it

var exp_data = data && data.methoda && data.method.expiration_date
var Data = (typeof exp_data !== undefined && typeof exp_data !== undefined ) ? date.formatDate(String(exp_data), 'DD/MM/YYYY') : ''

In you you need to test for any false value then you can simply use this

var exp_data = data && data.methoda && data.method.expiration_date
var Data = exp_data ? date.formatDate(String(exp_data), 'DD/MM/YYYY') : ''
Code Maniac
  • 37,143
  • 5
  • 39
  • 60
1

You can use:

var Data = (data.method && data.method.expiration_date) ? date.formatDate(String(data.method.expiration_date), 'DD/MM/YYYY') : ''

Checks for existence of data.method and before referencing data.method.expiration_date.

phudlow
  • 21
  • 4
1

Simply you don't have expiration_date in method.data so first check if it exists then do your stuff.

var Data = (data.method && data.method.expiration_date) ? date.formatDate(String(data.method.expiration_date), 'DD/MM/YYYY') : '';
Akhilesh
  • 927
  • 1
  • 6
  • 21