Manière correcte de créer un composant de case à cocher personnalisé Vue
P粉135292805
2023-09-02 18:22:50
<p>Comment créer une case à cocher personnalisée dans Vue. Lorsque la case à cocher change, elle doit appeler la fonction.
J'ai eu l'erreur "Impossible de lire la propriété 'id' non définie"
et avertissement "Une erreur non gérée s'est produite lors de l'exécution d'un gestionnaire d'événements natif"</p>
<p>case à cocher personnalisée :</p>
<pre class="brush:js;toolbar:false;"><template>
<div class="filtre">
<entrée
:ref="id"
:id="id"
tapez="case à cocher"
classe = "filtre-case à cocher"
@change="$emit('faire', $emit)"
/>
<span>{{ label }}</span>
</div>
</modèle>
<script>
exporter par défaut {
nom : "case à cocher",
accessoires : {
étiquette: {
tapez : chaîne
},
est sélectionné: {
tapez : booléen
},
identifiant: {
tapez : chaîne
}
},
}
</script></pre>
<p>Je souhaite utiliser ceci dans un composant parent : </p>
<p>
<pre class="brush:js;toolbar:false;"><case à cocher
v-for="filtre de filtres"
:key="filtre.id"
:label="filtre.nom"
:id="filtre.id"
v-model="filter.selected"
@do="mutuellementExclusif(filter.id)"
/></pré>
</p>
Les erreurs non définies et non gérées ne peuvent pas se reproduire et vous devez déboguer davantage.
Mais vous émettez la fonction d'émission, ce qui est bizarre, et la valeur est toujours
filter.id
qu'elle soit cochée ou non.Vous voudrez peut-être faire quelque chose comme ce qui suit :