fix(plugin-chart-echarts): layout broken when resizing (#20783)

* fix(plugin-chart-echarts): layout broken when resizing

* use useLayoutEffect
This commit is contained in:
Stephen Liu
2022-07-20 23:40:39 +08:00
committed by GitHub
parent d925b0c883
commit d90b973235

View File

@@ -22,6 +22,8 @@ import React, {
useMemo,
forwardRef,
useImperativeHandle,
useLayoutEffect,
useCallback,
} from 'react';
import { styled } from '@superset-ui/core';
import { ECharts, init } from 'echarts';
@@ -92,11 +94,23 @@ function Echart(
previousSelection.current = currentSelection;
}, [currentSelection]);
const handleSizeChange = useCallback(
({ width, height }: { width: number; height: number }) => {
if (chartRef.current) {
chartRef.current.resize({ width, height });
}
},
[],
);
// did mount
useEffect(() => {
if (chartRef.current) {
chartRef.current.resize({ width, height });
}
}, [width, height]);
handleSizeChange({ width, height });
}, []);
useLayoutEffect(() => {
handleSizeChange({ width, height });
}, [width, height, handleSizeChange]);
return <Styles ref={divRef} height={height} width={width} />;
}