gpt4 book ai didi

android - 覆盖后退按钮wix react native 导航V2?

转载 作者:行者123 更新时间:2023-11-29 00:54:53 24 4
gpt4 key购买 nike

我目前正在从 Wix RNN V1 过渡到 V2,到目前为止,我已经设法找到合适的替代 API,除了覆盖 Android 上的后退按钮。

在 V1 中,我们可以传递 overrideBackPress: true 属性,然后在相应屏幕上手动处理后退按钮按下。

但是,在 V2 中我没有找到这样的替代品,我能找到的唯一主题是这个主题:

https://github.com/wix/react-native-navigation/issues/4217

我已经实现了那里的建议,但 Wix 导航仍然会自动关闭屏幕,即使它应该被覆盖。

对此有任何已知的解决方案吗?

最佳答案

我有同样的问题,我可以覆盖两个平台上的后退行为的唯一方法是用自定义按钮替换左后退按钮,并使用 BackHandler of react native 作为 Android 中的硬件按钮。代码如下。

组件A

//Navigate to component B from A
Navigation.push(this.props.componentId, {
component: {
name: 'ComponentB',
options: {
topBar: {
leftButtons: [{
id: 'backPress',
text: 'Back',
icon: require('backbutton.png')
}]
},
}
}
});

组件 B

import React, { PureComponent } from 'react';
import { View, BackHandler } from 'react-native';
import { Navigation } from 'react-native-navigation';

export default class ComponentB extends PureComponent {

constructor(props) {
super(props);
Navigation.events().bindComponent(this);
}

componentDidMount() {
BackHandler.addEventListener('hardwareBackPress', this.handleBackPress);
}

componentWillUnmount() {
BackHandler.removeEventListener('hardwareBackPress', this.handleBackPress);
}

navigationButtonPressed({ buttonId }) {
switch (buttonId) {
case 'backPress': {
this.handleBackPress();
break;
}
}
}

handleBackPress = () => {
//Custom logic

//Go back if required
Navigation.pop(this.props.componentId)

//Stop the default navigation
return true;
};

//Render component
render() {
return (<View></View>);
}
}

关于android - 覆盖后退按钮wix react native 导航V2?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55527446/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com