[英]react native how to implement a back button
我不了解如何实现后退按钮。 以编程方式推动该场景,当我单击该按钮时,它将继续弹出屏幕,如果没有其他场景可以弹出,请退出react native视图并返回至native视图
这是我在活动中所拥有的
@Override
public void invokeDefaultOnBackPressed() {
getReactInstanceManager().onBackPressed();
}
在这种情况下是否需要覆盖OnBackPressed?
这是我设置导航器的方式
render() {
return (
<Navigator
initialRoute={{name: 'root'}}
renderScene={this.renderScene.bind(this)}
configureScene={(route) => {
if (route.sceneConfig) {
return route.sceneConfig;
}
return Navigator.SceneConfigs.FloatFromRight;
}} />
);
}
renderScene(route, navigator) {
return (
<Login
navigator={navigator} />
);
}
在登录中是第一个场景
class Login extends Component {
constructor(props) {
super(props);
_navigator = this.props.navigator
// Private variables
this.state = {
isLoading: true,
}
}
<View style={styles.leftContainer}>
<TouchableHighlight style={styles.button} onPress={this.onPressButton}>
<Text style={[styles.buttonText]}>Invite</Text>
</TouchableHighlight>
</View>
onPressButton() {
console.log("back button");
if (this.props.navigator && this.props.navigator.getCurrentRoutes() > 1) {
console.log("pop");
this.props.navigator.pop();
//return true;
}
console.log("false");
//return false;
}
}
当我单击按钮时,什么也没有发生。 我要退出的是本机视图,因为它位于场景的顶部。
奇怪的是,我什至没有单击按钮就看到控制台日志已打印。 这正常吗?
首先,从react-native导入BackAndroid。 之后,处理硬件后退按钮
componentDidMount() {
BackAndroid.addEventListener('hardwareBackPress', this.onBackPress.bind(this));
}
如果要关闭应用程序,请从onBackPress()返回false,否则返回true。
onBackPress(){
this.props.nav.pop();
return false;
}
onPress={this.onPressButton}
至
onPress={() => this.onPressButton}
要么
onPress={this.onPressButton.bind(this)}
正确绑定,看看是否可行。 请记住,在es6中,您必须正确绑定功能。 ES5自动执行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.