REACT - 使用 useEffect 回调访问状态

REACT - Accessing state with in useEffect callback

我已经举例说明了我的问题。我正在构建一个应该管理其子项大小的简单组件,但在进行任何操作之前,需要知道子项的初始大小。

所以每个子组件在useEffect上向父组件报告自己的尺寸,父组件必须保留所有子组件的宽度,但只保留最后一个。

https://stackblitz.com/edit/react-ts-fdqv7x?file=index.tsx

问题是为什么第 26 行 widths 的值为空?

当您调用 setWidths 时,您希望传递一个获取最新状态值的回调,如下所示:

setWidths((w) => ({ ...w, [index]: width }));

演示:https://stackblitz.com/edit/react-ts-kzgjfv?file=index.tsx