收藏
回答

echarts异步init导致setOption拿到的变量为null?

不知道你们在异步请求接口的时候有没有遇到这么一个问题,接口请求成功之后,去setOption的时候,这个时候init方法还没有执行完,这时候setOption就会报错,导致echarts图表出不来?目前是在 setOption的时候加了一个延时计时器,setTiemout为1000,但这不是一个很好的解决方案,这也是echarts最坑的一个点吧,大家要慎用,三思而后行!

回答关注问题邀请回答
收藏

5 个回答

  • 烙印
    烙印
    2022-08-10

    你好请问问题解决了吗? 我遇到一样的 加了延迟都不出来 一直报错setOption of null

    2022-08-10
    有用
    回复 2
    • 猛男陈阔
      猛男陈阔
      2022-08-23
      解决了
      2022-08-23
      回复
    • lerryxz
      lerryxz
      2022-11-28回复猛男陈阔
      你好,请问 还是只能通过加延时来处理吗
      2022-11-28
      回复
  • 程咬金
    程咬金
    2021-06-16

    检查一下是否是引入定制版的Echart,

    2021-06-16
    有用
    回复
  • 幸大大
    幸大大
    2021-04-20

    在onready里面做setOption

    2021-04-20
    有用
    回复
  • 惊蛰
    惊蛰
    2020-06-17

    option也设置为全局变量就可以了,用来做缓冲

    2020-06-17
    有用
    回复
  • 林子
    林子
    2020-04-27

    执行两次setOption就可以啦,第一次在init时候初始化基础配置,第二次在接口时更新数据就可以了

    2020-04-27
    有用
    回复 18
    • 林子
      林子
      2020-04-27
      第一次设置配置,第二次只更新数据
      2020-04-27
      回复
    • 猛男陈阔
      猛男陈阔
      2020-04-27
      两个不想关吧?
      2020-04-27
      1
      回复
    • 猛男陈阔
      猛男陈阔
      2020-04-27
      你这个setOption第一次只是赋值了charts的默认值,现在问题是init方法是异步导致的
      2020-04-27
      2
      回复
    • 林子
      林子
      2020-04-27回复猛男陈阔
      this.$nextTick() 用这个解决
      2020-04-27
      回复
    • 林子
      林子
      2020-04-27回复林子
      我这个是vue,小程序也有类似的
      https://developers.weixin.qq.com/miniprogram/dev/api/ui/custom-component/wx.nextTick.html
      如果不是组件你可以用Promise.all 异步改同步,相比较setTiemout稳定很多
      2020-04-27
      回复
    查看更多(13)
登录 后发表内容
问题标签