Maison > Article > interface Web > Erreur Vue : L'attribut calculé ne peut pas être utilisé correctement, comment le résoudre ?
Erreur Vue : L'attribut calculé ne peut pas être utilisé correctement, comment le résoudre ?
Dans le développement de Vue, l'attribut calculé est une fonctionnalité très couramment utilisée. Cela nous permet de déclarer des propriétés calculées dans l'instance Vue, et lorsque les données dépendantes changent, la valeur de la propriété calculée sera automatiquement mise à jour. Cependant, nous pouvons parfois rencontrer des problèmes et ne pas pouvoir utiliser correctement l'attribut calculé. Cet article présentera les problèmes courants et les solutions correspondantes.
Problème 1 : L'attribut calculé n'est pas mis à jour correctement
Lorsque nous déclarons un attribut calculé, Vue écoutera automatiquement les dépendances associées. Lorsque les dépendances changent, il recalculera et mettra à jour la valeur de l'attribut calculé. Mais parfois, l'attribut calculé n'est pas mis à jour correctement, ce qui peut être dû aux raisons suivantes :
Ce qui suit est un exemple de code qui montre la raison pour laquelle la propriété calculée n'est pas mise à jour correctement et la solution :
// 定义一个Vue实例 var vm = new Vue({ data: { list: [1, 2, 3] }, computed: { sum: function() { console.log('computed属性被计算了'); return this.list.reduce(function(total, num) { return total + num; }, 0); } } }); vm.sum; // 输出:6 // 问题一:computed属性没有正确更新 vm.list.push(4); vm.sum; // 输出:6,预期输出:10 // 解决办法一:使用Vue.set()方法添加元素 vm.list.push(4); Vue.set(vm.list, vm.list.length, 5); vm.sum; // 输出:15,问题解决
Problème 2 : La propriété calculée signale une erreur "TypeError : Impossible de lire la propriété 'xxx' de undefined"
Quand nous sommes dans la propriété calculée Lors de l'accès aux propriétés d'un objet, vous recevrez parfois un message d'erreur similaire à l'erreur ci-dessus. Cela peut être dû au fait que les données sur lesquelles repose la propriété calculée n'ont pas été définies, ce qui rend la propriété illisible.
La façon de résoudre ce problème est de s'assurer que les données dépendantes ont été correctement définies. Vous pouvez utiliser des instructions telles que v-if ou v-show dans l'attribut calculé pour juger les données dépendantes. Le calcul ne sera effectué que lorsque les conditions seront remplies pour éviter des situations indéfinies.
// 定义一个Vue实例 var vm = new Vue({ data: { user: undefined }, computed: { greeting: function() { if (this.user) { return 'Hello, ' + this.user.name; } else { return 'Welcome!'; } } }, methods: { getUserData: function() { // 模拟异步获取用户数据 setTimeout(function() { vm.user = { name: 'Tom' }; }, 1000); } } }); vm.greeting; // 输出:'Welcome!' vm.getUserData(); setTimeout(function() { vm.greeting; // 输出:'Hello, Tom',问题解决 }, 2000);
Grâce aux exemples de codes des deux questions ci-dessus, nous pouvons mieux comprendre et résoudre les problèmes qui peuvent être rencontrés lors de l'utilisation d'attributs calculés. Dans le développement réel, lorsque des problèmes sont rencontrés, ils peuvent être étudiés et résolus grâce aux idées ci-dessus pour améliorer la lisibilité et la robustesse du code. J'espère que cet article vous sera utile !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!