我需要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,
......
答案 0 :(得分:0)
React开发人员自己承认here,没有一种方法可以为组件定义道具类型。
也许最通用的选择可能是:
PropTypes.oneOfType([React.PropTypes.string, React.PropTypes.func])
如果您不关心字符串(对于诸如“ div”之类的本机元素),则可以执行以下操作:
React.PropTypes.func
如果您想变得非常具体,请参见以下答案: