使用ref和LayoutEffect钩子来实现。在组件加载前,通过ref获取到组件真正的宽高并进行保存。在LayoutEffect阶段再去读取真正的宽高值来进行布局计算。示例代码如下:
import React, { useRef, useState, useLayoutEffect } from 'react';
const MyComponent = () => {
  const [containerSize, setContainerSize] = useState({ width: 0, height: 0 });
  const containerRef = useRef(null);
  useLayoutEffect(() => {
    if (containerRef.current) {
      const { width, height } = containerRef.current.getBoundingClientRect();
      setContainerSize({ width, height });
    }
  }, []);
  //使用containerSize进行布局计算
  return (
    
      {/* 子组件 */}
    
  );
};