使用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'
问题是什么?
欢迎来到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知道任何代码都可以从类外部调用静态方法。