Javascript 为什么在eval时没有定义is函数?
我有以下Pokemon.vue文件:Javascript 为什么在eval时没有定义is函数?,javascript,vue.js,vue-component,Javascript,Vue.js,Vue Component,我有以下Pokemon.vue文件: <template> <div class="pokemon"> <h1>Pokemon Overview</h1> <div class v-for="pokemon in pokemonArray" :key="pokemon.id"> <p>{{ pokemon.name }}</p&
<template>
<div class="pokemon">
<h1>Pokemon Overview</h1>
<div class v-for="pokemon in pokemonArray" :key="pokemon.id">
<p>{{ pokemon.name }}</p>
<p>{{ pokemon.number }}</p>
<p>{{ pokemon.height }}</p>
<p>{{ pokemon.weight }}</p>
<p>{{ pokemon.types }}</p>
</div>
<button @click="AddPokemon">AddPokemon</button>
</div>
</template>
<script>
import axios from "axios";
import db from "@/firebase/init";
export default {
name: "Pokemon",
data() {
return {
pokemonArray: [],
};
},
methods: {
CapitalizeFirstLetter(string) {
return string.charAt(0).toUpperCase() + string.slice(1);
},
AddPokemon() {
for (var i = 520; i < 524; i++) {
axios.get("https://pokeapi.co/api/v2/pokemon/" + i).then((response) => {
var types = [];
for (var j = 0; j < response.data.types.length; j++) {
types.push(response.data.types[j].type.name);
}
db.collection("pokemon").add({
number: i,
name: CapitalizeFirstLetter(response.data.name),
weight: response.data.weight / 10,
height: response.data.height / 10,
types: types,
image:
response.data.sprites.other["official-artwork"].front_default,
});
});
}
},
},
created() {
//Fetch data from the firestore
db.collection("pokemon")
.get()
.then((snapshot) => {
snapshot.forEach((doc) => {
let pokemon = doc.data();
this.pokemonArray.push(pokemon);
});
});
},
};
</script>
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
</style>
口袋妖怪概述
{{pokemon.name}}
{{{pokemon.number}}
{{{pokemon.height}}
{{pokemon.weight}}
{{pokemon.types}}
添加口袋妖怪
从“axios”导入axios;
从“@/firebase/init”导入数据库;
导出默认值{
名称:“口袋妖怪”,
数据(){
返回{
口袋妖怪:[],
};
},
方法:{
大写第一个字母(字符串){
返回string.charAt(0.toUpperCase()+string.slice(1);
},
AddPokemon(){
对于(变量i=520;i<524;i++){
axios.get(“https://pokeapi.co/api/v2/pokemon/“+i).然后((响应)=>{
var类型=[];
对于(var j=0;j{
snapshot.forEach((doc)=>{
让pokemon=doc.data();
这个.pokemonArray.push(口袋妖怪);
});
});
},
};
然而,当我点击运行AddPokemon函数的按钮时,我被击中了
评估时未定义大写首字母
我不明白为什么会这样。我显然遗漏了一些东西,但就我的理解而言,使用不同于“方法”的方法应该是好的,但事实可能并非如此?非常感谢您的帮助。试试
这个。CapitalizeFirstLetter试试这个。CapitalizeFirstLetter
应该是这个。CapitalizeFirstLetter
:
db.collection(“口袋妖怪”).add({
编号:i,
名称:this.firstletter(response.data.name),
重量:response.data.weight/10,
高度:response.data.height/10,
类型:类型,,
图片:
response.data.sprites.other[“官方艺术品”]。front_默认值,
});
应该是这个。大写第一个字母
:
db.collection(“口袋妖怪”).add({
编号:i,
名称:this.firstletter(response.data.name),
重量:response.data.weight/10,
高度:response.data.height/10,
类型:类型,,
图片:
response.data.sprites.other[“官方艺术品”]。front_默认值,
});
您需要使用this
来访问vue实例,例如,this.CapitalizeFirstLetter(string)
您需要使用this
来访问vue实例,例如,this.CapitalizeFirstLetter(string)
当然。非常感谢Dan,Jeterson Miranda Gomes和andrei040191。我会确保的!我只想再等5分钟,等待选项可用。哦,当然。非常感谢Dan,Jeterson Miranda Gomes和andrei040191。我会确保的!我只是再等5分钟,等待选项可用。