错误'propTypes'未定义,错误'defaultProps'未定义

时间:2018-08-28 10:17:47

标签: 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)

我没有看到任何语法错误,并且代码对我来说很合适:

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,
    };
  }

还有其他人可以看到这里有什么问题吗?为什么会出现这些错误?

1 个答案:

答案 0 :(得分:3)

PropTypes现在是separate软件包(自React v15.5起)。

所以不是

import { PropTypes } from 'react';

请使用

import PropTypes from 'prop-types';

实际错误如何处理-您可以尝试使用版本为{strong> 3 的eslint(与此有关的see more)。