J'ai dans mon composant principal un composant personnalisé et j'ai besoin de déclencher un événement personnalisé en cliquant, j'ai essayé de cette manière: Cela ne fonctionne pas et j'ai essayé de résoudre ce problème avec l'ajout @ click.natif p> avec Puis-je éviter d'une manière ou d'une autre de tirer à nouveau cette épreuve si je clique sur" Enfant-composant "? p> p> .native code> Ça fonctionne mais il tire l'événement à chaque fois si je clique à l'intérieur de mon "enfant- Composant ". P>
3 Réponses :
Pour ce faire, vous avez besoin du gestionnaire de clic dans votre composant enfant, puis émettez un événement au parent.
dans le composant enfant: p> dans le composant parent: p>
Mais le problème est @Click ne fonctionne pas sur le composant personnalisé. N'est-ce pas possible?
Sûr @Click fonctionne, mais votre façon dont vous l'avez
V-on: cliquez sur CODE> et fonctionne un peu différent lorsqu'il est utilisé sur un composant enfant. Vuejs.org/v2/Guide/ ...
Ça marche. Merci beaucoup. Y a-t-il bien de passer des données comme: $ émettre ('wasclicked', catégorie.id)? Puis-je obtenir ensuite les données de cet événement dans un composant enfant?
Oui, vous pouvez certainement passer des données avec l'événement émis et l'utiliser votre méthode "FIRCUSTOMETOMVENT"
Vous devez afficher le code dans le composant émettant de l'événement.
Vous devez avoir quelque chose comme ceci: P>
//code that trigger an click event this.$emit('click'); //or if you you to pass some data this.$emit('click','some_data');
J'ai eu un problème similaire et je l'ai résolu en ajoutant Div pour envelopper le composant personnalisé et cela a fonctionné. Alors essayez ceci, cela devrait faire le travail.
<div @click="fireCustomEvent"> <child-component></child-component> </div>
Si vous liez le clic sur un div, l'événement sera déclenché lorsque l'un des composants à l'intérieur est cliqué. Peut-être devriez-vous expliquer ce que vous voulez cliquer et ce qui n'est pas. Montrez-nous ce qui est à l'intérieur de votre code>.