Bonjour, j'utilise fabricjs
, et ça marche bien pour moi. J'ai cependant récemment rencontré une chose JavaScript que je ne peux pas expliquer, et que j'ai seulement détectée sur fabricjs
(dans tous les navigateurs). Remarque: J'utilise 1.7.11
de fabricjs
.Faux code exécuté dans fabricjs _fireOverOutEvents
Il se produit sur mouse:out
événements. Il est seulement effet secondaire est de météorisation la console du navigateur avec:
Uncaught TypeError: Cannot read property 'fire' of null at klass._fireOverOutEvents (fabric.js:9717) ...
Il va comme ceci:
Ceci est la vanille fabric.js
(à savoir mon code). Comme vous pouvez le voir, target
est undefined
, donc le bloc if
n'est pas exécuté. Jusqu'à présent, c'est prévu. Maintenant pour la partie étrange.
this._hoveredTarget
est null
(voir vue du débogueur ci-dessous). Le bloc else if
ne doit pas être exécuté, mais il l'est.
Debugging view of falsy "else if" being executed
J'ai essayé de le fixer avec des variantes comme this._hoveredTarget !== null
et this._hoveredTarget != null
, mais il va toujours là quand this._hoveredTarget
est null
.
Je n'avais jamais vu ça auparavant. Une idée?
Pouvez-vous fournir la preuve que 'this._hoveredTarget' est null? – clabe45
vérifiez d'abord si 'this._hoveredTarget = target', après cela si vous exécutez – Durga
J'ai ajouté une vue de débogueur du code lorsque le problème se produit. – RKMNGRT