Maison > Questions et réponses > le corps du texte
J'ai un problème avec ma propriété calculée
correctAnswersForCurrentStage(): object {return return this.correctAnswers[this.currentLevel] ?? {}; },
Un peu de contexte : this.CorrectAnswers est un objet dont les propriétés sont les niveaux et les valeurs sont des objets pour chaque porte :
this.correctAnswers = { "1": { "1": 15, "2": 25, "3": 35, "4": 45 }, "2": { "1": 15, "2": 25, "3": 35, "4": 45 }, }
Donc, lorsqu'un niveau est terminé, j'ajouterai d'autres niveaux
this.currentLevel++
Tout sera bloqué après cela. Je ne sais pas si c'est Vue ou TypeScript qui pose ce problème. Ou peut-être une combinaison des deux ? Est-ce que quelqu'un sait pourquoi cela se produit ?
J'ai essayé de désactiver l'augmentation du niveau et il n'y a eu aucun problème. Évidemment, je suis resté au même niveau. Mais une autre logique de réinitialisation fonctionne
Suivi :
J'ai toujours eu le même problème lorsque je l'ai modifié pour qu'il n'ait pas besoin d'utiliser d'index, maintenant je l'ai fait :
correctAnswersForCurrentStage(): object { if (this.currentLevel === 1) { return this.correctAnswersForLevel1; } if (this.currentLevel === 2) { return this.correctAnswersForLevel2; } if (this.currentLevel === 3) { return this.correctAnswersForLevel3; } if (this.currentLevel === 4) { return this.correctAnswersForLevel4; } return {}; },
P粉1916105802023-09-11 14:18:26
C'est difficile à dire avec le code actuellement fourni, mais je soupçonne que this. CorrectAnswersForLevel1
etc. sont également des propriétés calculées. Cela signifie que vous obtenez une référence circulaire, résultant en une boucle infinie.
De plus, le code contient également des références incorrectes :
this. CorrectAnswers['1']
与 this. CorrectAnswers[1]
Différent car il compare les chaînes et les nombres entre eux.