安卓返回键事件,取消不了



  • componentDidMount() {
    const { goBack } = this.props.navigation;
    if (Platform.OS === 'android') {
    BackHandler.addEventListener('hardwareBackPress', this.onBackAndroid);
    }
    }

    onBackAndroid = () => {
        const {goBack,state} =  this.props.navigation;
        //alert(state.routeName);
        if(state.routeName == "PayView"){
    
            Alert.alert(
                '取消支付',
                '您确认取消支付吗?',
                [
                    {
                        text: '确认',
                        onPress: () => {
                            goBack("history-Shop");
                        }
                    },
                    {text: '取消', onPress: () => {}},
                ],
                {cancelable: false}
            )
            return true;
        }else{
            return false;
        }
        return false;
    }
    //当组件要被从界面上移除的时候
    componentWillUnmount() {
        // 如果存在this.timer,则使用clearTimeout清空。
        // 如果你使用多个timer,那么用多个变量,或者用个数组来保存引用,然后逐个clear
        this.timer && clearTimeout(this.timer);
        const { navigate } = this.props.navigation;
        const { params } = this.props.navigation.state;
    
        if (Platform.OS === 'android') {
            BackHandler.removeEventListener('hardwareBackPress', this.onBackAndroid);
        }
    }

登录后回复