0
votes

Cliquez sur l'événement dans Vuejs sur la composante personnalisée?

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: xxx

Cela ne fonctionne pas et j'ai essayé de résoudre ce problème avec l'ajout @ click.natif xxx

avec .native Ça fonctionne mais il tire l'événement à chaque fois si je clique à l'intérieur de mon "enfant- Composant ".

Puis-je éviter d'une manière ou d'une autre de tirer à nouveau cette épreuve si je clique sur" Enfant-composant "?


1 commentaires

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 .


3 Réponses :


3
votes

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: xxx

dans le composant parent: xxx


4 commentaires

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 Ici, il faudrait écouter un événement "Cliquez sur" à l'intérieur du composant enfant lui-même. @Click est sténographique pour V-on: cliquez sur 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"



-1
votes

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');


0 commentaires

0
votes

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>


0 commentaires