【问题标题】:number of elements in react navigation stack反应导航堆栈中的元素数
【发布时间】:2020-02-06 20:52:31
【问题描述】:

我想检查我的反应导航堆栈中的元素数量。如果只剩下一个屏幕并且用户按下后退按钮,应用程序会向他们显示一条消息以退出应用程序。我必须在所有屏幕中使用 BackHandler,因为我还没有找到可以显示堆栈中元素的属性。 这是我的路线

const route1= {
    screen1,
    screen2
};

const route2= {
        screen3,
    screen4
};

export const stack1= createStackNavigator(route1);
export const stack2= createStackNavigator(route2);

export default {stack1, stack2};

这是我的导航器

createNavigator = (routeName, params) => {
        this.navigator = createAppContainer(createSwitchNavigator(routes, { initialRouteName: routeName, initialRouteParams: params }));
    }

【问题讨论】:

    标签: react-native react-navigation


    【解决方案1】:

    当您使用 createStackNavigator 使用 react-navigation 时,您只能在 initialRouteName 屏幕内添加 backHandler 控件,但您需要添加一个 eventListener 来检查您正在观看的屏幕是否实际上是焦点所在的屏幕,否则它也会在您的其他屏幕上触发

    如果不是这种情况,要检查堆栈的长度,您可以在屏幕内使用导航道具检查它:

    handleBackPress=()=>{
       if(this.props.navigation.state.routes.length===1){
          //do what you need
         return true
       }
       else {
       this.props.navigation.pop(1)
       return true
       }
    }
    

    【讨论】:

      猜你喜欢
      • 2020-01-28
      • 1970-01-01
      • 2022-10-16
      • 2018-03-17
      • 2020-07-14
      • 2019-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多