Я хочу изменить свой код в соответствии с правилами airbnb - PullRequest
0 голосов
/ 07 мая 2019
import React, { Component } from 'react';
import { connect } from 'react-redux';
import { bindActionCreators } from 'redux';
import PropType from 'prop-types';
import Counter from '../components/Counter';
import * as counterActions from '../store/modules/counter';

class CounterContainer extends Component {
  handleIncrement = () => {
    console.log('+');
    const { CounterActions } = this.props;
    CounterActions.increment();
  }

  handleDecrement = () => {
    console.log('-');
    const { CounterActions } = this.props;
    CounterActions.decrement();
  }

  render() {
    const { handleIncrement, handleDecrement } = this;
    const { number } = this.props;

    return (
      <Counter
        onIncrement={handleIncrement}
        onDecrement={handleDecrement}
        number={number}
      />
    );
  }
}

Я использую ESLint airbnb.Когда я пишу приведенный выше код ESLint

, возникает ошибка «Противодействие» при проверке реквизита.И «номер» отсутствует в проверке реквизита

, поэтому я добавляю

CounterContainer.propTypes = {
  number: PropType.number,
  CounterActions: PropType.func,
};

propType «номер» не требуется, но не имеет соответствующего объявления defaultProps.propType "CounterActions" не требуется, но не имеет соответствующего объявления defaultProps.

Я не знаю, как изменить это с этого момента.Я пытаюсь применить ESLint, следуя инструкциям.Как я могу изменить это?

1 Ответ

2 голосов
/ 07 мая 2019

Он просит вас установить defaultProps, так как они оба необязательны.Похоже, что они оба необходимы для этого компонента, установите для них isRequired:

CounterContainer.propTypes = {
  number: PropType.number.isRequired,
  CounterActions: PropType.func.isRequired,
};

Это обойдёт правило react/require-default-props для этих реквизитов.

...