方法使用typescript时React getDerivedStateFromProps问题

问题描述 投票:0回答:1

使用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'

问题是什么?

reactjs typescript tslint
1个回答
0
投票

欢迎来到SO!您可以尝试将该方法标记为公开吗?

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知道任何代码都可以从类外部调用静态方法。

© www.soinside.com 2019 - 2024. All rights reserved.