React ECharts 添加事件后控件多次绘制导致闪烁多次

ECharts React About 1,123 words

现象

React中使用了echarts-for-react依赖库,在绑定了事件时,控件会多次绘制,导致了图形闪烁多次。

原因

echarts-for-react在添加事件时是作为对象传入到onEvents属性中的,对象频繁创建导致,最主要是使用了useState变量。

错误代码

const StackBarChart = ({loading, data}) => {
    
    // ...
    
    const onEvents = {
        click: (params: any) => {
            console.log('click:', params, data);
        },
    };
    
    return <>
        <ReactECharts
                    showLoading={loading}
                    option={options}
                    onEvents={onEvents}
                />
    </>
}

正确代码

第一步:使用useMemo缓存频繁创建的对象。

第二步:使用useRefuseEffect监听传入数据,在点击事件中使用ref.current避免重绘。

const StackBarChart = ({loading, data}) => {
    
    // ...
    
    const dataRef = useRef(data);
    useEffect(() => {
        dataRef.current = data;
    }, [data]);
    
    const onEvents = useMemo(() => ({
        click: (params: any) => {
            console.log('click:', params, dataRef.current);
        },
    }), []);
    
    return <>
        <ReactECharts
                    showLoading={loading}
                    option={options}
                    onEvents={onEvents}
                />
    </>
}
Views: 10 · Posted: 2026-04-07

———         Thanks for Reading         ———

Give me a Star, Thanks:)

https://github.com/fendoudebb/LiteNote

扫描下方二维码关注公众号和小程序↓↓↓

扫描下方二维码关注公众号和小程序↓↓↓
Prev Post
Today In History
Browsing Refresh