Javascript 获取axios get中未定义的错误
我的API响应如下所示Javascript 获取axios get中未定义的错误,javascript,vue.js,vuejs2,axios,Javascript,Vue.js,Vuejs2,Axios,我的API响应如下所示 data: { id: 9, quantity: 2, address: "Test Address", total_price: 144.42, created_at: "August 07, 2018 04:02:46 AM", customer: { id: 3, name: "Prof. Laurel Lemke", email: "velma32@example.or
data: {
id: 9,
quantity: 2,
address: "Test Address",
total_price: 144.42,
created_at: "August 07, 2018 04:02:46 AM",
customer: {
id: 3,
name: "Prof. Laurel Lemke",
email: "velma32@example.org",
role_id: 3,
},
product: {
id: 7,
name: "Pellentesque semper",
description: "raesent sit amet elementum purus.
price: "72.21",
cover_image: "7CPVS7yjqba9iJ7J.jpg",
}
}
我用axios获取它,在axios中,当点击按钮时它被触发
fetchOrder: function(id){
let vm = this;
axios.get('api/order/' + id)
.then( response => {
vm.order = response.data.data;
vm.orderModal = true;
})
.catch( error => {
console.log(error);
});
},
响应是成功的,我用
<span>{{ order.address }}</span> //Test Address
我怎样才能解决这个问题?谢谢将其更改为:
<span>{{order.customer && order.customer.name}}</span>
{{order.customer&&order.customer.name}
将其更改为:
<span>{{order.customer && order.customer.name}}</span>
{{order.customer&&order.customer.name}
问题在于您的代码已执行,但API调用是异步的,因此直到API返回响应但代码已执行时,才定义customer。在访问价值之前,您需要向客户进行检查
order.address
有效,因为order可能是对象,因此在获取API响应之前,order.address将是未定义的。但是,对于order.customer.name,customer是未定义的,因此customer.name将中断
检查
{{order.customer&&order.customer.name}
,它应该可以正常工作问题是代码被执行了,但是API调用是异步的,所以直到API返回响应但代码被执行时才定义customer。在访问价值之前,您需要向客户进行检查
order.address
有效,因为order可能是对象,因此在获取API响应之前,order.address将是未定义的。但是,对于order.customer.name,customer是未定义的,因此customer.name将中断
检查
{{order.customer&&order.customer.name}
,它应该可以正常工作您的订单。客户没有名称对象,或者您的客户是空的或者未定义的。您的订单.customer
没有名称对象,或者您的客户是空的或者未定义的。
<span>{{order.customer && order.customer.name}}</span>