Maison  >  Questions et réponses  >  le corps du texte

Vue js : Dépannage - Lecture de la propriété '$refs' de undefined

Obtention d'une erreur Impossible de lire la propriété non définie (lecture de '$refs') même si j'ai une référence dans le modèle. Cela signifie-t-il que je dois utiliser les hooks de montage Vue ?

<div class="input-wrapper">
   <input type="text" id="phone" placeholder="(555) 555-5555" ref="input"/>
</div>
                            
<script>                   
  this.$refs.input.addEventLis tener('input', function () {
        // some code
 });
</script>


P粉848442185P粉848442185346 Il y a quelques jours711

répondre à tous(1)je répondrai

  • P粉752290033

    P粉7522900332023-11-08 13:08:12

    Dans le composant Vue

    Vérifiez ici. . p>


    Les

    Vue Références de modèles ne sont accessibles que dans tout hook ou méthode qui se produit après l'installation du composant et avant sa désinstallation.

    Cela signifie que le plus tôt auquel vous pouvez faire référence this.$refsthis.$refs est situé installé. Le dernier se trouve avantDémonter . Vous pouvez également y accéder dans tous les hooks ou méthodes qui se produisent entre ces deux moments.


    Étant donné que vous essayez d'ajouter des écouteurs d'événements à HTMLInputElement, je vous recommande d'utiliser la directive v-on, qui ajoutera automatiquement des écouteurs d'événements au montage et les supprimera au démontage.

    Dans votre cas :

    
                                
    sssccc
    

    D'ailleurs, sachez que thisce d'une fonction régulière n'a pas accès au contexte du composant, sauf s'il s'agit d'une fonction fléchée :

    export default {
      mounted() {
        this.$refs.input.addEventListener('input', function() {
          /*
           * Here `this` is the context of the current function, you can't 
           * access methods, computed, data or props of the component.
           * You'd need to make it an arrow function to access the component scope
           */
        })
      }
    }
    

    Et dans n'importe quelle méthode (par exemple : myFn),thismyFn ci-dessus),

    this est le contexte du composant, qui peut accéder à tous les membres du composant. 🎜

    répondre
    0
  • Annulerrépondre