2017-07-07 1 views
1

Warum auch mit einem ZF-Check beschwert, Fluss klagt noch über einen möglicherweise NullwertWarum Fluss noch über Nullwerte für document.getElementById

if(document && document.getElementById("myID") && document.getElementById("myID").offsetWidth){ 
console.log(document.getElementById("myID").offsetWidth); 
} 

gibt dieser Fehler

^property `offsetWidth`. Property cannot be accessed on possibly null value 

Antwort

3

Fluss keine Möglichkeit hat, zu wissen, dass der Erfolg des ersten Aufrufs an getElementById bedeutet, dass die späteren auch erfolgreich sein werden. Nach allem, was es weiß, konnte das Lesen der offsetWidth Eigenschaft getElementByIdnull beim nächsten Aufruf starten starten.

Sie müssen den Wert speichern, z.

const myIdEl = document && document.getElementById("myID"); 

if(myIdEl && myIdEl.offsetWidth) { 
    console.log(myIdEl.offsetWidth); 
} 

diese Art und Weise gibt es keine Möglichkeit für myIdEl-werden null, nachdem sie verwiesen worden.

Verwandte Themen