From 00141fe79f770768af043699f9c19a6235f9028b Mon Sep 17 00:00:00 2001 From: Janry Date: Wed, 26 Oct 2022 00:07:50 +0800 Subject: [PATCH] fix(react): fix throw react-dom error in react-native (#3491) --- packages/react/src/shared/render.ts | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/packages/react/src/shared/render.ts b/packages/react/src/shared/render.ts index 684f49dd6b9..b76fb405498 100644 --- a/packages/react/src/shared/render.ts +++ b/packages/react/src/shared/render.ts @@ -1,16 +1,19 @@ import React from 'react' -import { createPortal } from 'react-dom' import { globalThisPolyfill } from '@formily/shared' const env = { portalDOM: null, + ReactDOM: null, } export const render = (element: React.ReactElement) => { - if (globalThisPolyfill['document']) { + if (globalThisPolyfill.navigator?.product === 'ReactNative') return null + if (globalThisPolyfill.document) { env.portalDOM = env.portalDOM || globalThisPolyfill['document'].createElement('div') - return createPortal(element, env.portalDOM) + env.ReactDOM = env.ReactDOM || require('react-dom') + //eslint-disable-next-line + return env.ReactDOM.createPortal(element, env.portalDOM) } else { return React.createElement('template', {}, element) }