'Proptypes' 未定义

'Proptypes' is not defined

我正在借助以下工具设置一个新的 React:Create React App

但是,我 运行 遇到了 linting 问题。我收到以下 linting 错误 'PropTypes' is not defined. (no-undef).

这是导致问题的代码:

import React, { Component } from 'react';
import PropTypes from 'prop-types';

class Routers extends Component {
  static propTypes = {
    history: PropTypes.object.isRequired
  };

...

我试过 react/prop-types 规则,但无济于事。

请安装 prop-types npm 包 - React 1.15 及更高版本创建了单独的包。

Here to install package

您可以将 PropTypes 放在 class 之后(class 之外):

Routers.propTypes = {
   history: PropTypes.object.isRequired
}

根据这个问题comment

这似乎是因为您安装了 eslint 4.x,而您应该只使用 create-react-app 附带的 eslint 版本。您应该删除您手动安装的任何 eslint,并使用 repo 附带的那个。

我在全局安装了 eslint 的项目中遇到了同样的问题。 我通过在项目中手动安装 eslint 解决了这个问题: npm i eslint --save

再见 杰夫

请安装prop-types

使用此代码:

npm install --save prop-types

从 React 15.5 开始,PropTypes 被包含在一个单独的包中,'prop-types'。 所以这条线会有所帮助

import PropTypes from 'prop-types'

你可以阅读更多here

如果您使用 <script> 标签;您可以添加此标签:

<script src="https://cdnjs.cloudflare.com/ajax/libs/prop-types/15.7.2/prop-types.min.js" integrity="sha512-ssNhh7jlzc+K93ckIlSXFHHz6fSFv0l619WOv8xbFNRbFOujbasb42LVMOggDrQR1ScJncoWb+KAJx1uF3ipjw==" crossorigin="anonymous"></script>

您可以获得 minified/non-minified 和其他 version here

祝你好运...