使用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”必须标记为“私有”,“公开”或“受保护”
出什么问题了?
答案 0 :(得分:0)
欢迎您!您可以尝试将该方法明确标记为公共方法吗?
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知道任何代码都可以从类外部调用静态方法。