是否有可靠的方法来测试一个函数(无状态组件)或从React.Component扩展的类(有状态组件)是否是有效的React组件?
还是函数(无状态组件)或类的render方法返回有效的JSX值?
这应该很明显,但是仅出于说明目的,我的组件是这样声明的。
无状态组件的声明如下:
const MyComp = (props) => (<div>content</div>)
有状态组件是这样声明的,并且可以由HOC(例如Redux.connect)声明:
class MyComp extends Component {
// other methods...
render () {
return (<div>content</div>)
}
}
我尝试使用React.isValidElement(MyReactComponentClassOrFunction),但返回false,因为它期望将对象作为输入。
function isValidElement(object) {
return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;
}
我正在调用以下功能
React.isValidElement(MyComp) // returns false