recherche

Maison  >  Questions et réponses  >  le corps du texte

javascript - erreur d'affectation des données d'initialisation de vue

code vue

<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>

Signaler une erreur

TypeError: Cannot set property 'titleList' of undefined
Erreur de type, impossible de définir une propriété non définie,

Données

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

漂亮男人漂亮男人2706 Il y a quelques jours772

répondre à tous(6)je répondrai

  • 伊谢尔伦

    伊谢尔伦2017-06-26 10:57:47

    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)

    .

    répondre
    0
  • 巴扎黑

    巴扎黑2017-06-26 10:57:47

    .then(res => {
        this.titleList = res;
    })

    répondre
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-06-26 10:57:47

    this.axios.get('XX')
        .then(function (response) {
          response=response.body;
          this.titleList=response.data;
        })
        .catch(function (error) {
          console.log(error);
    })
    

    Essayez ceci. Si cela ne fonctionne pas, publiez l'erreur et jetez un œil !

    répondre
    0
  • 扔个三星炸死你

    扔个三星炸死你2017-06-26 10:57:47

    Ce pointeur est perdu, vous pouvez utiliser la fonction flèche, ou vous pouvez utiliser une variable pour le sauvegarder let _this = this

    répondre
    0
  • 習慣沉默

    習慣沉默2017-06-26 10:57:47

    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

    .

    répondre
    0
  • 阿神

    阿神2017-06-26 10:57:47

    axios.get('***').then((res) => {
        this.titleList=res.data;
    });

    Essayez de cette façon

    répondre
    0
  • Annulerrépondre