我需要Row
s孩子都是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,
......
由于React devs自己承认here,没有一种方法可以为组件定义prop类型。
也许最通用的选择可能是:
PropTypes.oneOfType([React.PropTypes.string, React.PropTypes.func])
如果您不关心字符串(对于像“div”这样的原生元素),您可以这样做:
React.PropTypes.func
如果你想非常具体,请看这个答案: