在data定义变量后依旧报undefined
之前跑的好好项目突然data中报undefined,在mounted打印也出不来。
最后排查,还是个人粗心问题:
变量太多,自己多加变量时忘了赋值,导致整个运行报错。
data(){
return {
a:"信息1",
b:"信息2",
c
}
},
mounted(){
console.log(this.a)//undefined
}
如上代码,虽然我在末尾加变量,es6语法会默认c为c:c,在编译器里认通过。
但是,c没有初始值卡住之后会影响其他data变量的获取,打印a、b的值都是undefined
vue data定义的变量使用另一变量
在写代码的时候,遇到一个问题,我想使用data里面的一个变量,赋值给data里面的另一个变量。
直接赋不行 latitude: latitude, 不行,latitude: this.latitude, 也不行,上网查了一下,可以通过computed和mounted来实现,成功了。
data() {
return {
longitude: 120.42,
latitude: 36.09,
covers: [
{
// latitude: latitude, 不行
// latitude: this.latitude, 也不行
// latitude: 0,
// longitude: 0,
iconpath: '../../static/logo.png',
width: 25,
height: 25
}
],
};
},方法一:computed
注释的部分为其它的方法。
computed: {
// computelon(){
// return this.covers[0].longitude = this.longitude;
// },
// computelat(){
// return this.covers[0].latitude = this.latitude;
// }
computelonlat(){
// this.covers[0].longitude = this.longitude;
// this.covers[0].latitude = this.latitude;
this.$set(this.covers[0], 'longitude', this.longitude);
this.$set(this.covers[0], 'latitude', this.latitude)
return
}
},方法二: mounted
mounted() {
this.$set(this.covers[0], 'longitude', this.longitude);
this.$set(this.covers[0], 'latitude', this.latitude)
},总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论