开发者问题收集

无法在 Vue3 中读取未定义(读取)的属性

2022-06-21
1226

我从著名的 ApiPokemon 收到此调用: https://pokeapi.co/api/v2/pokemon?limit=151

一旦我获得该数据,我想将其通过另一种方法( _getPokemonData )传递,以映射每个 Pokémon 的完整数据。

但是,当我创建此 VueJS 方法时,我收到此错误:

未捕获(在承诺中)TypeError:无法读取未定义的属性(读取“_getPokemonData”)

为什么我不能在 forEach 中调用 _getPokemonData 方法? 这是我的代码:

mounted() {
    this.$http
      .get("https://pokeapi.co/api/v2/pokemon?limit=151")
      .then((response) => {
        //this.pokemons = response.data.results;
        this.pokemons = response.data.results.forEach(function(pokemon){
          this._getPokemonData(pokemon); 
        });
      });

    this.$http
      .get("https://pokeapi.co/api/v2/type/")
      .then((response) => {
        this.types = response.data.results;
      });
  },

  methods: {
    _getPokemonData(pokemon) {
      console.log(pokemon);
    },
1个回答

将 forEach 中的函数切换为箭头函数。通过使用“function”,您可以创建一个劫持“this”引用的新范围。

请参阅 this

Sombriks
2022-06-21