未定义错误“propTypes”且未定义错误“defaultProps”

Dan*_*iel 1 javascript reactjs eslint react-proptypes

我正在处理react-redux应用程序的一些可访问性问题。

我安装了npm install eslint eslint-plugin-jsx-a11y@4.0.0 --save-dev,现在当我运行我的应用程序时,出现以下错误:

Failed to compile.

Error in ./src/components/Promo.jsx

/code/src/components/Promo.jsx
  15:10  error  'propTypes' is not defined       no-undef
  19:10  error  'defaultProps' is not defined    no-undef
  42:3   error  'updateCellCode' is not defined  no-undef

? 3 problems (3 errors, 0 warnings)
Run Code Online (Sandbox Code Playgroud)

我没有看到任何语法错误,代码对我来说看起来很正确:

import React, { PureComponent, PropTypes } from 'react';
import { throttle, prepAndFormatForInnerHTML } from '../util';
import '../assets/styles/application/promo.css';
import Promos from '../assets/strings/promos.json'; // placeholder info

const MOBILE_BREAKPOINT = 679; // from scss file

/** Used in Account, App, and OrderStatus */
class Promo extends PureComponent {
  static propTypes = {
    hideOnSmall: PropTypes.bool,
  }

  static defaultProps = {
    hideOnSmall: false,
  }

  constructor() {
    super();

    this.updateCellCode = throttle(this.updateCellCode, 100);

    this.state = {
      cellCode: Promos[0].cellCodeWeb,
    };
  }
Run Code Online (Sandbox Code Playgroud)

其他人能看到这里有什么问题吗?为什么我会收到这些错误?

fal*_*sky 5

PropTypes现在是一个单独的包(因为React v15.5)。

所以代替

import { PropTypes } from 'react';
Run Code Online (Sandbox Code Playgroud)

请用

import PropTypes from 'prop-types';
Run Code Online (Sandbox Code Playgroud)

实际错误如何 - 您可以尝试使用eslint版本3请参阅有关此内容的更多信息)。