问题来源是 功能需要点击不同的地方传入不同的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])
然后写这个方法return回我们的配置参数(这里的deepMerge为自己写的深度合并方法,不是自带方法)
第二种方法实现后你会发现比第一种更顺畅。