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