react hooks中echarts-for-react实时更新解决方法

问题来源是 功能需要点击不同的地方传入不同的echarts x,y数据,但是这个时候你会发现如果正常的写它并不会实时更新,要么停留在第一次数据,要么直接数据无法显示,主要存在每次需要重新加载页面或者(子组件)的时候。
原因是echarts里面的option没有重新运行

解决方案1:

            <BaseChart
                notMerge={
     true}
                style={
     {
      width: "100%", height: "82%" }}
                option={
     lineOption}
                key={
     Date.now()}
                
            ></BaseChart>

在basecharts里面加入key,这个时候他会更具时间随时进行更新,但是也损耗大
解决方案2:

            <BaseChart
               notMerge={
     true}
               style={
     {
      width: "100%", height: "82%" }}
               option={
     lineOption()}
               // key={Date.now()}
               
           ></BaseChart>

写入一个lineoption()方法,然后再useMemo或者useEffect中调用:

        useMemo(()=>{
     
           console.log(option,'765')
           lineOption()
       },[option])

react hooks中echarts-for-react实时更新解决方法_第1张图片
然后写这个方法return回我们的配置参数(这里的deepMerge为自己写的深度合并方法,不是自带方法)
第二种方法实现后你会发现比第一种更顺畅。
react hooks中echarts-for-react实时更新解决方法_第2张图片

你可能感兴趣的:(echarts,react)