需求
扩展需要动态创建独立的 React root(createRoot),但当前只暴露了 react-dom
(仅有 createPortal/flushSync),无 react-dom/client。
场景
扩展需要在宿主页面上动态挂载独立的 React 渲染子树(如弹出浮层、面板),
createPortal 只能挂在已存在的 DOM 上,无法创建独立 root。
建议变更
extension-env.d.ts
+ declare const ReactDOMClient: typeof import("react-dom/client");
vite.config.ts externals
- external: ["jotai", "react", "react-dom"],
+ external: ["jotai", "react", "react-dom", "react-dom/client"],
使用方式
const { createRoot } = ReactDOMClient;
const root = createRoot(el);
root.render(<Component />);
需求
扩展需要动态创建独立的 React root(createRoot),但当前只暴露了
react-dom(仅有 createPortal/flushSync),无
react-dom/client。场景
扩展需要在宿主页面上动态挂载独立的 React 渲染子树(如弹出浮层、面板),
createPortal只能挂在已存在的 DOM 上,无法创建独立 root。建议变更
extension-env.d.ts
使用方式