2017-04-13 1 views
0

Ich finde ich dies zu tun, wobei ich, dass die vorhergehende Variable undefined müssen prüfen, ist nicht, bevor die nächsten in der Kette überprüft:Javascript - wie überprüft man, ob das Elternobjekt nicht undefiniert ist?

:

if(this.props.someVar && this.props.someVar.data) { 
    // do something with this.props.someVar.data ... 
} 

Es ist einfach ideal wäre, dies zu tun

if(this.props.someVar.data) { 
    // This throws an error because I haven't checked if `this.props.someVar` exists beforehand. 
} 

Gibt es einen einfacheren/kürzeren Weg dazu, vorzugsweise mit reinem Javascript?

+1

prüfen zu verwenden, wenn 'someVar' nicht undefiniert mit'! = Undefined' Aussage. – Oen44

+0

Ich weiß, nicht "rein" JS, aber mit [immutableJS] (https://facebook.github.io/immutable-js/docs/#/) hat den zusätzlichen Vorteil einer so großen API wie [getIn] (https : //facebook.github.io/immutable-js/docs/#/Collection/getIn) – thedude

+0

versuche mit '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' das Kind '' –

Antwort

-1

Ich hasse das auch. Der einfachste Weg ist try catch wie diese

try { 
    // do something with this.props.someVar.data 
} catch (e) { 
    if (e instanceof TypeError) { 
     // TypeError happens when an object in the chain is undefined 
    } 
} 
+0

Warum der Downvote? – Mtihc

+1

Dies ist weder kürzer noch einfacher zu verstehen –

Verwandte Themen