如何检测反应元素是反应门户?
How to detect that the react element is a react portal?
ReactProtal
界面是这样的:
interface ReactPortal extends ReactElement {
key: Key | null;
children: ReactNode;
}
如何检查反应元素是否是反应门户?
const element: ReactPortal | JSX.Element = getComponent();
if(isReactPortal(element)) {
// do something with react portal
} else {
// do something with usual react element
}
当前解决方案:检查 key
属性 是否存在
if('key' in element) {
// is react portal
} else {
// is usual react element
}
但我不确定这是否坚固和安全。
ReactProtal
界面是这样的:
interface ReactPortal extends ReactElement {
key: Key | null;
children: ReactNode;
}
如何检查反应元素是否是反应门户?
const element: ReactPortal | JSX.Element = getComponent();
if(isReactPortal(element)) {
// do something with react portal
} else {
// do something with usual react element
}
当前解决方案:检查 key
属性 是否存在
if('key' in element) {
// is react portal
} else {
// is usual react element
}
但我不确定这是否坚固和安全。