Dans 2.0.0-rc.1, une construction comme
<p>Count: {{$refs.components && $refs.components.length}}</p>
<sub-component v-for="item in items" ref="components">
ne fonctionne plus (le nombre reste à la valeur initiale, même si items
et donc le nombre de composants est modifié). Dans la v1, les tableaux de $refs seraient mis à jour de manière réactive.
Je ne sais pas s'il s'agit d'un bug ou d'une fonctionnalité, mais #2873 ne semble pas le mentionner.
C'est voulu - la raison en est que les $refs
sont maintenant enregistrés/mis à jour pendant le processus de rendu lui-même. Il n'est pas recommandé de s'appuyer sur $refs
dans les modèles car ils sont uniquement destinés à l'accès par programmation en JavaScript.
J'ai mis à jour #2873 pour inclure ceci.
@yyx990803 cela signifie-t-il que l'utilisation de this.$refs.*
dans les propriétés computed
cessera également de fonctionner dans la v2 ou est-ce simplement l'utilisation dans les modèles ? Dois-je résoudre tout cela avec des événements personnalisés ?
Je transmets actuellement les résultats de validation des enfants au parent comme ceci.
vous pouvez utiliser this.$forceUpdate()
et setTimeout
pour restituer la vue lorsque vous mettez à jour les données et constatez que $refs
ne se met pas à jour de manière réactive.
this.fetchSomeShit()
.then((data) => {
this.data = data
setTimeout(() => {
this.$forceUpdate()
})
})
utilisez setTimeout
pour vous assurer que les données ont été données dans ce qu'ils disent la vue taskqueue
Commentaire le plus utile
@yyx990803 cela signifie-t-il que l'utilisation de
this.$refs.*
dans les propriétéscomputed
cessera également de fonctionner dans la v2 ou est-ce simplement l'utilisation dans les modèles ? Dois-je résoudre tout cela avec des événements personnalisés ?Je transmets actuellement les résultats de validation des enfants au parent comme ceci.