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

问题描述 投票:0回答:1

我需要Rows孩子都是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,
......
javascript reactjs webpack
1个回答
0
投票

由于React devs自己承认here,没有一种方法可以为组件定义prop类型。

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

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

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

React.PropTypes.func

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

React propTypes component class?

© www.soinside.com 2019 - 2024. All rights reserved.