反应导航堆栈中的元素数
Posted
技术标签:
【中文标题】反应导航堆栈中的元素数【英文标题】: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 ));
【问题讨论】:
【参考方案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
【讨论】:
以上是关于反应导航堆栈中的元素数的主要内容,如果未能解决你的问题,请参考以下文章
从嵌套屏幕导航到不同选项卡堆栈中的另一个嵌套屏幕(反应导航)