diff --git a/app/react/src/client/preview/render.tsx b/app/react/src/client/preview/render.tsx index cb972f17d6dc..2ed55bec144b 100644 --- a/app/react/src/client/preview/render.tsx +++ b/app/react/src/client/preview/render.tsx @@ -39,10 +39,10 @@ const WithCallback: FC<{ callback: () => void; children: ReactElement }> = ({ children, }) => { // See https://github.com/reactwg/react-18/discussions/5#discussioncomment-2276079 - const once = useRef(false); + const once = useRef<() => void>(); useLayoutEffect(() => { - if (once.current) return; - once.current = true; + if (once.current === callback) return; + once.current = callback; callback(); }, [callback]); @@ -55,11 +55,7 @@ const renderElement = async (node: ReactElement, el: Element) => { return new Promise((resolve) => { if (root) { - root.render( - resolve(null)}> - {node} - - ); + root.render( resolve(null)}>{node}); } else { ReactDOM.render(node, el, () => resolve(null)); }