我遇到了一个问题,在我决定之前我需要BackAndroid Press上的堆栈长度,我是否想要弹出场景。有没有办法获得堆栈长度?
BackAndroid.addEventListener('hardwareBackPress', this.exitPress.bind(this));
基本上在exitPressed上,我想检查堆栈长度是否为1,如果是,我想将其重定向到另一个场景,任何帮助都表示赞赏。
答案 0 :(得分:0)
假设您使用Navigator
,index.android.js
文件应如下所示:
export default class Foo extends React.Component {
constructor(props) {
super(props);
this._navigator = null;
}
renderScene(route, navigator) {
if(!this._navigator){
this._navigator = navigator;
BackAndroid.addEventListener('hardwareBackPress', () => {
if (this._navigator && this._navigator.getCurrentRoutes().length > 1) {
this._navigator.pop();
return true;
}
return true;
});
}
return React.createElement(component, { ...this.props, ...route.passProps, route, navigator } );
}
render() {
return (
<Navigator
initialRoute={...}
configureScene={...}
renderScene={(route, nav) => {return this.renderScene(route, nav)}}
/>
);
}
}
AppRegistry.registerComponent('Foo', () => Foo);
如果你没有使用Navigator
IDK,你怎么能做到这一点,因为hardwareBackPress
对堆栈上的位置一无所知。