【发布时间】:2020-08-26 10:37:14
【问题描述】:
所以我有一个Page 组件,其中包含多个Column 组件,每一列都包含不同的用户特定标记。
在Page 组件中,我需要做一些额外的突变(比如列溢出检查、推送列内容等)。出于这个原因,我需要一种在所有 Column 组件已安装后收到通知的方法 - 也包括已进行的隐式突变。
我的第一次尝试是 useEffect 钩子,但是,它确实在 Column 组件甚至收到它的 ref 之前被调用。
// AppContext
const [columns, setColumns] = useState([]);
const Page = ({children}) => {
useEffect({
// This gets called before columns are available
}, []);
return (<div className="page">{children}</div>);
}
const View = () => {
const {columns} = useContext(AppContext);
return (
<Page>
{columns.map(c => <Column>{c}</Column>)}
</Page>
);
}
【问题讨论】:
-
尝试使用
useLayoutEffect而不是useEffect。 -
谢谢,亲爱的@RA。接受我的回答。我对你的问题表示赞成。我希望它能激励你继续使用 Stack Overflow。另外,我赞成你的其他问题。
标签: javascript reactjs react-hooks react-component