我正在使用组件WillReceiveProps来接收下一个状态,并在收到特定状态时导航到新屏幕。
// if(this.props.success !== prevProps.success && this.props.success) {
// this.props.navigation.navigate('Attendances');
// }
// else if (this.props.error !== prevProps.error && this.props.error) {
// alert(this.props.errorMessage);
由于新函数GetDerivedStatesFromProps是一个静态函数,所以我不能使用this.props.navigation.navigation进入下一个屏幕。
我怎样或怎样才能达到同样的结果。
使用componentDidUpdate:
componentDidUpdate(prevProps) {
if(this.props.success !== prevProps.success && this.props.success) {
this.props.navigation.navigate('Attendances');
} else if (this.props.error !== prevProps.error && this.props.error) {
alert(this.props.errorMessage);
}
}
此外,我不确定为什么要调用方法参数prevProps
,因为componentWillReceiveProps实际上接收nextProps