<script>
import axios from 'axios';
export default {
data() {
return {
titleList: [],
}
},
created() {
this.axios.get('XX').then(function(response) {
console.log(response.data);
this.titleList=response.data;
}).catch(function (error) {
console.log(error);
});
}
}
</script>
TypeError: Cannot set property 'titleList' of undefined
Erreur de type, impossible de définir une propriété non définie,
response.data est un tableau d'objets
J'ai initialisé titleList, mais je ne sais pas pourquoi il dit qu'il n'est pas défini, veuillez me donner une réponse
Ce pointeur a changé. Vous pouvez l'imprimer pour voir à qui il pointe
.Solution
1. Utilisez la fonction flèche
.2. Enregistrez ceci (laissez _this = this)
Essayez ceci. Si cela ne fonctionne pas, publiez l'erreur et jetez un œil !
Ce pointeur est perdu, vous pouvez utiliser la fonction flèche, ou vous pouvez utiliser une variable pour le sauvegarder
let _this = this
Lorsque j'utilise axios pour demander des données, je me souviens d'introduire la bibliothèque de classes axios globalement dans le fichier d'entrée du programme main.js. Après l'avoir importé, essayez d'utiliser Vue.prototype.$http=axios. pour l'étage Vous pouvez essayer ce problème de pointeur signalé dans la réponse donnée. Je suis habitué à la syntaxe d'es6, donc les fonctions fléchées sont généralement utilisées dans les projets
.Essayez de cette façon