useUpdateLayoutEffect
React layoutEffect hook that ignores the first invocation (e.g. on mount). The signature is exactly the same as the useLayoutEffect
hook.
Usage
const Demo = () => {
const [count, setCount] = useState(0);
const [layoutEffectCount, setLayoutEffectCount] = useState(0);
const [updateLayoutEffectCount, setUpdateLayoutEffectCount] = useState(0);
useLayoutEffect(() => {
setLayoutEffectCount(c => c + 1);
}, [count]);
useUpdateLayoutEffect(() => {
setUpdateLayoutEffectCount(c => c + 1);
return () => {
// do something
};
}, [count]); // you can include deps array if necessary
return (
<div>
<p>layoutEffectCount: {layoutEffectCount}</p>
<p>updateLayoutEffectCount: {updateLayoutEffectCount}</p>
<p>
<button type="button" onClick={() => setCount(c => c + 1)}>
reRender
</button>
</p>
</div>
);
};
Example
layoutEffectCount: 0
updateLayoutEffectCount: 0
Type Declarations
declare const _default: typeof useEffect | typeof useLayoutEffect
export default _default