vue传递参数问题

如下代码:

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方法中才能正确打印,就算是在当前组件也是不能渲染的

阅读 2k
1 个回答

首先,marketTrades的数据是异步获取的,当子组件渲染时,数据立即就传递了,此时数据还未获取回来,当然就是空的,其次,如果子组件需要响应的marketTrades变化,那就在子组件中watch marketTrades

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题