跳到主要内容

ReactPortal

createPortal 允许将 JSX 作为 children 渲染至 DOM 的不同部分(其他节点)

import { REACT_PORTAL_TYPE } from 'shared/ReactSymbols';
import { checkKeyStringCoercion } from 'shared/CheckStringCoercion';

import type { ReactNodeList, ReactPortal } from 'shared/ReactTypes';

export function createPortal(
children: ReactNodeList,
containerInfo: any,
// TODO: figure out the API for cross-renderer implementation.
// 待办:搞清楚跨渲染器实现的 API。
implementation: any,
key: ?string = null,
): ReactPortal {
if (__DEV__) {
checkKeyStringCoercion(key);
}
return {
// This tag allow us to uniquely identify this as a React Portal
// 这个标签允许我们将其唯一标识为一个 React 门户
$$typeof: REACT_PORTAL_TYPE,
key: key == null ? null : '' + key,
children,
containerInfo,
implementation,
};
}
信息

好像被耍了,它基本就是导出了传入的参数