J'ai créé un composant de formulaire dans Vue 3 et j'essaie de lier un objet de référence à un élément d'entrée, en fonction de ma compréhension de la liaison bidirectionnelle et de la façon dont Vue s'est comportée dans mes travaux passés. tout changement affectera ma référence à l'objet immédiat sans aucune manipulation comme je dois le faire avec les composants React en déclenchant l'événement réactif "onChange".
Cependant, lorsque je clique sur le bouton "Enregistrer" pour déclencher la fonction qui génère l'objet référencé, il semble conserver uniquement la valeur qui a été initialement chargée et aucune modification que j'ai apportée à l'entrée. Quelqu'un peut-il expliquer pourquoi ?
Voici le code de mon composant. Il se chargera dans une fenêtre contextuelle.
importer le type {Activité} depuis '@/models/activity' ; importer { ref } depuis "vue" ; importer le bouton depuis '../../common/Button.vue' ; définirEmits([ "fermer le formulaire" ]); const props = définirProps<{ titre ? : chaîne, activité ? : Activité, mode d'édition : booléen }>(); const initialState = props.activité ?? { identifiant: '', titre: '', catégorie: '', description: '', date: '', ville: '', lieu: '' } const currActivity = ref (initialState); const handleSubmit = () => { console.log(currActivity.value); } // const handleInputChange = (événement : événement) => { // const {nom, valeur} = event.target as HTMLInputElement ; // console.log(nom, valeur); // // currActivity.value[nom] = valeur ; // } {{ titre }}
触发的更改事件的更改。后来我删除了它们,因为这似乎不起作用。我保留了评论功能,但以防万一有人发现它有助于查找问题。
Vous devez utiliser
v-model
而不是:value
pour une reliure bidirectionnelle :