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



我需要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,
......

正如 React 开发人员自己在这里承认的那样,没有一种方法可以为组件定义 prop 类型。

也许最通用的选择是:

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

如果你不关心字符串(对于像"div"这样的原生元素(,你可以做:

React.PropTypes.func

如果你想变得非常具体,请看这个答案:

反应属性类型组件类?

最新更新