我有两个Vue 3组件:
在第一个中,我有这个函数,它通过按下一个按钮来触发,并将响应从后端发送到第二个组件:
methods: {
postMessage(){
label = {'label': this.selectedOption, 'status': 'true'}
const path = 'http://localhost:5000/labeling';
axios.post(path, label)
.then(response =>
{
console.log('response right after arriving',response)
this.submit_status = response.data
console.log('submit_status right after arriving_2',this.submit_status)
this.status = response.data.status
console.log('response right after arriving_3',this.status)
})
//.catch(error => console.error('error:',error));
console.log('exit the response function?')
if(status == 'False')
{
alert('entire csv file labeled')
}
else{
this.emitter.emit('received_coordinates',this.submit_status);
}
}
在第二个组件中,使用发出的变量“received_data”。
mounted(){
this.index = 1
this.emitter.on("received_coordinates", (received_data) => {
this.coordinates = received_data.scan_cart
this.index = received_data.index
}
})
},
以下错误ONLY发生在第一次发射过程之后:
received_data.scan_data未定义(由第二个组件触发)
我已经检查了浏览器中的网络选项卡,数据传输正确。错误似乎发生在.then语句被触发之前:
之后,响应数据到达,但错误已经发生:
1条答案
按热度按时间68de4m5k1#
我认为你必须把emit放在
.then()
里面:目前,该事件是在发送post请求之后发出的,因此在设置
this.submit_status
之前,当访问undefined上的属性时会出现错误。