当前位置: 代码网 > it编程>编程语言>Javascript > vue在data中定义变量后依旧报undefined的解决

vue在data中定义变量后依旧报undefined的解决

2024年05月18日 Javascript 我要评论
在data定义变量后依旧报undefined之前跑的好好项目突然data中报undefined,在mounted打印也出不来。最后排查,还是个人粗心问题:变量太多,自己多加变量时忘了赋值,导致整个运行

在data定义变量后依旧报undefined

之前跑的好好项目突然data中报undefined,在mounted打印也出不来。

最后排查,还是个人粗心问题:

变量太多,自己多加变量时忘了赋值,导致整个运行报错。

data(){
	return {
		a:"信息1",
		b:"信息2",
		c
	}
},
mounted(){
	console.log(this.a)//undefined
}

如上代码,虽然我在末尾加变量,es6语法会默认cc:c,在编译器里认通过。

但是,c没有初始值卡住之后会影响其他data变量的获取,打印ab的值都是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)
  },

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com