我认为React.isFragment
目前只是一个提案:https://github.com/facebook/react/issues/12038
是否有解决方法可以执行类似
的操作if (child instanceof React.Fragment) {
...
}
直到该API可用。
对我有用的临时解决方案:
const isReactFragment = child => {
try {
return child.type.toString() === React.Fragment.toString();
} catch (e) {
return false;
}
};
答案 0 :(得分:3)
现在,这是可能的:
function isReactFragment(variableToInspect) {
if (variableToInspect.type) {
return variableToInspect.type === React.Fragment;
}
return variableToInspect === React.Fragment;
}
检查variableToInspect.type
是因为组件 instances 具有该属性。
答案 1 :(得分:0)
出于完整性考虑,现在建议使用react-is
软件包,如上述问题的结束语中所述。
像这样使用:
import React from "react";
import * as ReactIs from 'react-is';
ReactIs.isFragment(<></>); // true
ReactIs.typeOf(<></>) === ReactIs.Fragment; // true