ошибка 'propTypes' не определена, а ошибка 'defaultProps' не определена

Я работаю над некоторыми проблемами доступности в приложении react-redux.

Я установил npm install eslint [email protected] --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,
    };
  }

Может ли кто-нибудь еще увидеть, что здесь не так? Почему я получаю эти ошибки?


person Daniel    schedule 28.08.2018    source источник


Ответы (1)


PropTypes теперь представляет собой отдельный пакет (начиная с React v15.5).

Итак, вместо

import { PropTypes } from 'react';

пожалуйста, используйте

import PropTypes from 'prop-types';

Что насчет фактической ошибки - вы можете попробовать использовать eslint версии 3 (подробнее об этом).

person falinsky    schedule 28.08.2018
comment
Фалинский, должны ли я получать эти ошибки, даже если я использую React 15.3? PropTypes не поставляется как отдельный пакет до React 16. - person Daniel; 28.08.2018
comment
если вы используете реакцию 15.3 - вам нужно импортировать PropTypes из пакета реакции. они извлекли его в отдельную библиотеку в реакции v15.5. как насчет ошибок - кажется, они связаны с версией eslint, а не с версией реакции. Вы пробовали eslint v3? - person falinsky; 28.08.2018