Метод React getDerivedStateFromProps проблема при использовании машинописи - PullRequest
0 голосов
/ 05 сентября 2018

Используйте tslint. У нас есть следующий код:

export default class TableCell extends React.PureComponent<IProps, IState> {
  static getDerivedStateFromProps(nextProps: IProps, prevState: IState) {
    return nextProps.status !== prevState.status ? {
      status: nextProps.status
    } : null;
  }

  constructor(props: any){
    super(props);
    this.state = {
      status: props.status
    };
  }

  ...
}

Что вызывает следующую ошибку: Метод класса 'getDerivedStateFromProps' должен быть помечен как 'private', 'public' или 'protected'

В чем проблема?

1 Ответ

0 голосов
/ 05 сентября 2018

Добро пожаловать на ТАК! Не могли бы вы явно пометить метод как публичный?

export default class TableCell extends React.PureComponent<IProps, IState> {
  public static getDerivedStateFromProps(nextProps: IProps, prevState: IState) {
    return nextProps.status !== prevState.status ? {
      status: nextProps.status
    } : null;
  }

  constructor(props: any){
    super(props);
    this.state = {
      status: props.status
    };
  }
}

Это позволит TS знать, что любой код может вызывать статический метод вне класса.

...