J'essaie de calculer la facture totale (somme de tous les produits * Utilisation) à partir d'un objet de données du chiffroducteur et d'afficher le montant de la facture. J'appelle une méthode calculée pour effectuer cela. Les données CustomerProduct sont extraites à partir d'un appel problème: strong> dans le rendu initial, Spectacles de console Erreur suivante: Méthode calculée pour calculer la facture totale: P> Obtenir un appel code> API dans la méthode créée () code>. [Vue Warn]: Erreur de rendu: "TypeError: impossible de lire la propriété" Prix "de non défini" code>. S'agit-il parce que le calcul prend du temps et que lorsque le modèle de modèle HTML rend, le CustomerProductData n'est pas correctement récupéré?
Aussi, peut utiliser p> p> customerMetaData:{
'discount': 2.2
}
3 Réponses :
Ma première hypothèse est d'utiliser la méthode au lieu de calculé p>
Essayé ça. Ne fonctionne pas, voulez-vous que je montrais le code pour cela?
voici le travail jsfiddle - jsfiddle.net/3wcb98lk/4 - il y avait d'autres erreurs, telles que vous essayaient de t'avoir une longueur d'objet au lieu d'une matrice et essayé également d'obtenir un paramètre qui n'était pas dans votre objet (consommation vs usage)
C'était une erreur de mon côté en écrivant la question. Mise à jour de la question avec l'appel Obtenir API aussi. L'erreur persiste toujours. Pourriez-vous s'il-vous-plaît vérifier?
Voici un code mis à jour. Essayez une fois.
p>
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id="app">
<h1>{{ billAmount }}</h1>
</div>D'accord avec vos points, corrigez l'utilisation de la typo «consommation» de la question. L'erreur persiste toujours, ce n'était pas sur cette inadéquation de clé.
Pourriez-vous mettre à jour la question avec les derniers changements?. Cela m'aide à déboguer plus
Oui, ça. Peux tu vérifier s'il te plaît? Comme je l'ai écrit, le CustomerProduCtData reçoit ses données d'un appel d'accès à l'API, pensez-vous que le délai pourrait entraîner cette erreur?
Ajoutée. Vérifiez s'il vous plaît.
Laissez-nous Continuez cette discussion en chat .
La question était en effet que l'appel de l'API d'obtention prenait du temps, d'où le CustomerProduCtData n'était pas renseigné. Ainsi, lorsque la méthode calculée a été appelée, il n'a pas eu de données à utiliser.
Maintenant, si vous lisez la méthode calculée avec soin, j'ai réellement écrit le code pour traiter la situation ci-dessus à l'aide d'un car, il n'y a pas de données dans CustomerProduCtData, l'accès initial de Solution: Vérifiez si l'index 0 existe ou non dans CustomerProductData P> si code > Déclaration pour retourner 0 si le CustomerProductData n'était pas renseigné. Cela n'a pas fonctionné car la condition utilisée était incorrecte. p> this.customerproductdata [0] code> échoue, donc le prix code> Propriété n'est jamais accessible, c'est-à-dire non fort> retourner non défini code> p> computed:{
billAmount(){
var billAmountWithoutDiscount = 0;
if(!this.customerProductData.hasOwnProperty(0)){
return 0.0
}
else{
for(let i=0;i<this.customerProductData.length;i++){
billAmountWithoutDiscount += this.customerProductData[i].PRICE * this.customerProductData[i].CONSUMPTION;
}
return Number((100.0 - this.customerMetaData.discount)*billAmountWithoutDiscount/100).toLocaleString();
}
}
}