检查函数或类是否是有效的React组件

时间:2018-06-28 09:21:10

标签: javascript reactjs

是否有可靠的方法来测试一个函数(无状态组件)或从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

React.isValidElement doc

0 个答案:

没有答案