taro-react-echarts 数据更新图表不更新问题
摘要:在React+Taro+ECharts开发微信小程序时,遇到图表数据更新但渲染不同步的问题。通过useEffect监听数据变化并更新option,但图表未刷新。尝试设置echarts的key和销毁实例均无效,最终通过在useEffect中添加setTime(newDate().getTime())强制触发更新。该方法有效但原理尚不明确,推测与React的渲染机制有关。欢迎讨论此解决方案的工作
·
技术栈
react taro echarts(taro-react-echarts) 微信小程序
<Echarts
echarts={echarts}
option={option.current}
ref={echartsRef as any}
onChartReady={(chart) => {
// 进行初始化设置
chart.setOption(option.current, true);
}}
/>
要点1
onChartReady={(chart) => {
// 进行初始化设置
chart.setOption(option.current, true);
}
定义option
const option = useRef({...})
监听接口数据变化给option赋值
useEffect(() => {
const newOption = {...};
option.current = newOption;
setTime(new Date().getTime())
}, [priceData, address]);
问题
接口数据获取到了 图表不更新
但是 useEffect 监听到了 有打印
影响 :
有变量address 是通过弹框更改的
点击打开设置address的弹框 图表数据会更新
解决失败:
1.给 echarts 添加key 无效
2.在useEffect添加实例销毁 无效
解决成功:
添加变量time,在useEffect添加
setTime(new Date().getTime())
为什么能解决? 不知道
欢迎讨论
更多推荐
所有评论(0)