在React propType定义中使用导入的模块

时间:2018-08-29 20:58:15

标签: javascript reactjs webpack

我需要Row的孩子才能成为Col组件的实例: 当Row和Col位于同一文件中时,以下代码有效,但是当我将Col导入Row时,出现此错误: Warning: Failed prop type: Cannot call a class as a function

如何在propType定义中使用变量和导入? (使用webpack构建)

import React from 'react';
import PropTypes from 'prop-types';
import Col from './Col';

export default class Row extends React.Component {
  static propTypes = {
    children: PropTypes.oneOfType([
      PropTypes.shape({ type: Col }),
      PropTypes.arrayOf(PropTypes.shape({ type: Col }))
    ]).isRequired,
......

1 个答案:

答案 0 :(得分:0)

React开发人员自己承认here,没有一种方法可以为组件定义道具类型。

也许最通用的选择可能是:

PropTypes.oneOfType([React.PropTypes.string, React.PropTypes.func])

如果您不关心字符串(对于诸如“ div”之类的本机元素),则可以执行以下操作:

React.PropTypes.func

如果您想变得非常具体,请参见以下答案:

React propTypes component class?