0

Я застрял с проблемой, где мне нужна длина стека на BackAndroid Press, прежде чем я решит, хочу ли я поп-сцены или нет. Есть ли способ получить длину стека?Получить длину стека действий на response-native-router-flux

BackAndroid.addEventListener('hardwareBackPress', this.exitPress.bind(this));

В основном на exitPressed, я хочу, чтобы проверить, если длина стека 1, если она есть, я хочу, чтобы перенаправить его на другой сцене, любая помощь приветствуется.

ответ

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 ИДК, как вы можете сделать это, потому что hardwareBackPress ничего не знает о положении на стеке не знаю ,