v-model ne fonctionne pas avec <component> dans Vue 3 ?
P粉806834059
2023-08-29 20:16:20
<p> 有限制吗?</p>
<pre class="brush:php;toolbar:false;"><configuration du script>
importer { ref } depuis 'vue'
const config = réf({
en-têtes : [
{ champ : 'id', étiquette : 'Id', composant : { type : 'input' } },
{ champ : 'nom', étiquette : 'Nom', composant : { type : 'input' } },
// plus de configurations pour les boutons radio et autres composants personnalisés
],
données: [
{ identifiant : 1, nom : 'foo' },
{ identifiant : 2, nom : 'bar' }
]
})
</script>
<modèle>
<tableau>
<tr>
<td v-for="en-tête dans config.headers">
<b>{{ header.label }}</b>
</td>
≪/tr>
<tr v-for="élément dans config.data">
<td v-for="en-tête dans config.headers">
<component :is="header.component.type" v-model="item[header.field]" />
</td>
≪/tr>
</tableau>
{{ config.data }}
</template></pre></p>
Vue
v-model
fonctionne très bien pour les éléments natifs.Mais ça ne marche évidemment pas avec
Votre génération de code
Une solution très rapide consiste à implémenter directement la liaison
值
.Mais vous devrez mettre à jour vos composants en conséquence pour utiliser
value
而不是modelValue
.Mise à jour
Identique à l'utilisation de
v-model:value
的解决方法仅以一种方式起作用,与:value
.