diff options
-rw-r--r-- | packages/bun-framework-next/client.development.tsx | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/packages/bun-framework-next/client.development.tsx b/packages/bun-framework-next/client.development.tsx index e65cbbcdc..1c51a97e8 100644 --- a/packages/bun-framework-next/client.development.tsx +++ b/packages/bun-framework-next/client.development.tsx @@ -365,9 +365,18 @@ export async function _boot(EntryPointNamespace, isError) { ); if (USE_REACT_18) { - if (!isError && !reactRoot) { - // Unlike with createRoot, you don't need a separate root.render() call here - reactRoot = ReactDOM.hydrateRoot(domEl, reactEl); + if (!isError && domEl.hasChildNodes() && !reactRoot) { + try { + // Unlike with createRoot, you don't need a separate root.render() call here + reactRoot = ReactDOM.hydrateRoot(domEl, reactEl); + } catch (exception) { + try { + reactRoot = ReactDOM.createRoot(domEl); + reactRoot.render(reactEl); + } catch { + throw exception; + } + } } else { if (!reactRoot) { reactRoot = ReactDOM.createRoot(domEl); |