各位大佬,我vue中封装了一个highcharts组件,但是在传数据的时候有点问题

如图一,是我封装的highcharts组件,通过props接收父组件传递过来的id和option数据
图片描述

如图二、三,是父组件中调用。我在父组件的data中初始化了option,并且为空,
在mounted中获取实际数据并赋值给option

问题来了,因为异步的原因吧,我父组件传递给子组件的option是初始化的中的option,即是空的,这就导致我子组件中获取不到option数据,
然后我在子组件中通过setimeout延迟调用实例化解决的数据获取不到的问题

但是我觉得我这样的写法虽然拿到了数据并渲染了,但是总感觉这样不是正确的解决方式

请问,这种情况该如何正确解决???

图片描述

图片描述

图片描述

阅读 4.3k
3 个回答

之前也遇见过这种情况,可以在子组件里用深度 watcher 监测传过来的option;也可以用状态管理来处理

这个最后怎么解决的啊,我也封装了一个类似的组件,然后也需要在父组件上通过后台获取的数据更新option。
目前通过watch 来监测,但是感觉页面会特别的卡。

clipboard.png

在div里写一个v-if当有数据传过来时设成true,其他为false

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