Skip to content

Commit

Permalink
feat: support react 19 (#12395)
Browse files Browse the repository at this point in the history
  • Loading branch information
sorrycc authored May 16, 2024
1 parent 88416e9 commit d6a841c
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,11 @@ export default (api: IApi) => {
cwd: api.cwd,
dep: 'react-dom',
}) || dirname(require.resolve('react-dom/package.json'));
const reactDOMVersion = require(join(reactDOMPath, 'package.json')).version;
const isLT18 = !reactDOMVersion.startsWith('18.');
const isLT18 = (() => {
const reactDOMVersion = require(join(reactDOMPath, 'package.json')).version;
const majorVersion = parseInt(reactDOMVersion.split('.')[0], 10);
return majorVersion < 18;
})();
const configDefaults: Record<string, any> = {
alias: {
umi: '@@/exports',
Expand Down
6 changes: 3 additions & 3 deletions packages/preset-umi/src/features/mpa/mpa.ts
Original file line number Diff line number Diff line change
Expand Up @@ -49,16 +49,16 @@ export default (api: IApi) => {
);
}

const isReact18 = api.appData.react.version.startsWith('18.');
const isGTEReact18 = api.appData.react.version.split('.')[0] >= 18;
(api.appData.mpa!.entry as Entry[]).forEach((entry) => {
const layout = entry.layout || api.config.mpa.layout;
const layoutImport = layout ? `import Layout from '${layout}';` : '';
const layoutJSX = layout ? `<Layout><App /></Layout>` : `<App />`;
const rootElement = `document.getElementById('${entry.mountElementId}')`;
const renderer = isReact18
const renderer = isGTEReact18
? `ReactDOM.createRoot(${rootElement}).render(${layoutJSX});`
: `ReactDOM.render(${layoutJSX}, ${rootElement});`;
const reactDOMSource = isReact18 ? 'react-dom/client' : 'react-dom';
const reactDOMSource = isGTEReact18 ? 'react-dom/client' : 'react-dom';
api.writeTmpFile({
path: entry.tmpFilePath,
noPluginDir: true,
Expand Down

0 comments on commit d6a841c

Please sign in to comment.