aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/bun-framework-next/client.development.tsx15
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);