Vue 使用axios无法使用data属性接收数据

错误例子:

data() {
			return {
				title: '生命周期',
				cera: '',
				money: 1 * 5 * 6 * 4,
//listuser用于接收axios返回的数据
				listuser:'',
				}
	methods: {
			selectUser() {
				this.$axios.get('/api/ListUser')
					.then(function(response) {
						console.log("log=", response);
						this.listuser=response.data
					})
					.catch(function(error) {
					});
			}
		}

  当你这样在axios中使用this.listuser的时候,会提示没有定义listuser

原因:

          在像data和的选项函数中methods,vue绑定this到我们的视图模型实例,所以我们可以使用this.contas,但在函数里面thenthis没有绑定。

解决方法1:

methods: {
            var slef=this
			selectUser() {
				this.$axios.get('/api/ListUser')
					.then(function(response) {
						console.log("log=", response);
						slef.listuser=response.data
					})
					.catch(function(error) {
					});
			}
		}

      在axios中 then里边是this不出来data属性的,所以你需要在外边定义一个this,这个时候再用你自己定义的this就可以了

解决方法2:

methods: {
			selectUser() {
				this.$axios.get('/api/ListUser')
					.then((response)=> {
						console.log("log=", response);
						this.listuser=response.data
					})
					.catch(function(error) {
					});
			}
		}

如果你的目标是支持现代浏览器(或使用像babel这样的转换器),您可以使用ES6标准中的箭头功能 这样也是可以获取到data属性的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值