Skip to content

Commit b7467bc

Browse files
committed
fix(components): 排除从react-dom/client导包
1 parent 2996aea commit b7467bc

File tree

4 files changed

+30
-2
lines changed

4 files changed

+30
-2
lines changed

packages/components/src/loading/showLoading.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import { createRoot, type Root } from 'react-dom/client';
21
import type { LoadingProps } from './loading.types';
2+
import { createRoot, Root } from 'react-dom';
33
import { Loading } from './Loading';
44

55
let root: undefined | Root;

packages/components/src/message/useMessage.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ import type { MessagePushOptions, MessageQueueRef } from './message.types';
22
import { useCallback, useEffect, useMemo, useRef } from 'react';
33
import type { PartialPart } from '@tool-pack/types';
44
import { MessageQueue } from './MessageQueue';
5-
import { createRoot } from 'react-dom/client';
65
import { nextTick } from '@tool-pack/basic';
6+
import { createRoot } from 'react-dom';
77

88
type Res = readonly [
99
Record<
+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
import React from 'react';
2+
interface Root {
3+
render(children: React.ReactNode): void;
4+
unmount(): void;
5+
}
6+
interface RootOptions {
7+
identifierPrefix?: string;
8+
onRecoverableError?: (error: unknown, errorInfo: ErrorInfo) => void;
9+
}
10+
11+
interface ErrorInfo {
12+
digest?: string;
13+
componentStack?: string;
14+
}
15+
16+
interface DO_NOT_USE_OR_YOU_WILL_BE_FIRED_EXPERIMENTAL_CREATE_ROOT_CONTAINERS {}
17+
18+
type Container =
19+
| Element
20+
| DocumentFragment
21+
| DO_NOT_USE_OR_YOU_WILL_BE_FIRED_EXPERIMENTAL_CREATE_ROOT_CONTAINERS[keyof DO_NOT_USE_OR_YOU_WILL_BE_FIRED_EXPERIMENTAL_CREATE_ROOT_CONTAINERS];
22+
23+
declare module 'react-dom' {
24+
// 原定义是在 react-dom/client 里面的,但实际在 react-dom 就有 createRoot,且 client.js 有用 nodejs 无法跳过,只能覆盖定义了
25+
export function createRoot(container: Container, options?: RootOptions): Root;
26+
export type Root = Root;
27+
}

packages/react-ui/tsconfig.json

+1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
"rootDir": "../../",
77
"outDir": "./temp/types",
88
"declarationDir": "./temp/types",
9+
"types": ["../../packages/components/src/react-dom.d.ts"],
910
"paths": {
1011
"@pkg/*": ["../../packages/*/src"],
1112
"@pkg/components/*": ["../../packages/components/src/*"],

0 commit comments

Comments
 (0)