如下代码:
data() {
return {
marketTrades:[],//实时成交数据
}
},
methods:{
someThing(){
this.axios.get('admin/res/list').then((response) => {
const data = response.data;
this.marketTrades = data.data['market.trades'];//实时成交数据
console.log(this.marketTrades);//实时成交数据,这里能正确打印所有数据
}).catch((err) => {
this.$message.error(err);
})
}
},
watch:{
optionValue(val){//监听select的值,响应不同交易对所获取的websocket数据
this.someThing();
}
}
首先我定义了一个临时数组marketTrades,
我需要通过监听select的值来获取实时成交数据,并把这个获取的数据传递给子组件
在someThing方法中,能够正确打印‘this.marketTrades’这个数据。但是在我传递数据到子组件时,这个传递的数据是空的。请问该如何解决呢?
这个‘this.marketTrades’只有在someThing方法中才能正确打印,就算是在当前组件也是不能渲染的
首先,marketTrades的数据是异步获取的,当子组件渲染时,数据立即就传递了,此时数据还未获取回来,当然就是空的,其次,如果子组件需要响应的marketTrades变化,那就在子组件中watch marketTrades