React—Native 控件之StackNavigator

由于项目框架方案使用的混编,所以在项目中StackNavigator就变得尤为重要 下面就由小程同学带大家来认识下这个控件。

在学习这个控件时  我查阅了多篇博客发现他们存在一个公有的问题  就是都忽略了一个传值  他们只进行了跳转的操作  忽略了对navigation的讲解。这货(navigation)对于我来说尤为的重要。因为我把Navigator隐藏 并单独将Navigator写成了View(NavigationView)进行控制那么返回按钮的点击事件是需要传递这货的(navigation)不知道大家是否能听懂  上图1.0

React—Native 控件之StackNavigator_第1张图片

1.0

在之后的讲解中我会详细说明这个值的作用。

下面我们按步骤讲解StackNavigator的使用

1.首先我们知道在RN中的跳转跟ios原生是不同的   它需要的是一个路由(类似于书的目录)标记viewcontroller的跳转并且可以对每个导航配置

const MainScreenNavigator = StackNavigator({

TickVC:{screen:TicketViewController},//设置跳转的界面

CityVC:{screen:CityViewController} },

{ initialRouteName: 'TickVC', // 默认显示界面

headerMode:'none',//隐藏StackNavigator

navigationOptions: { // 屏幕导航的默认选项, 也可以在组件内用static navigationOptions 设置(会覆盖此处的设置)

header: { // 导航栏相关设置项 // 

backTitle: '', // 左上角返回键文字

style: {

backgroundColor: 'red',

title:'国际机票',titleColor:'white' },

titleStyle: { color: 'green' } },

//cardStack: { // gesturesEnabled: false // } },

gesturesEnabled:true//是否可以使用手势关闭此屏幕

} );

这里不是全部的属性 只是我用到的  如果需要别的属性可以去官方文档上看  我就不赘述了。

我们设置好路由后 如图2.0 在这个界面我多说一句,加上它

React—Native 控件之StackNavigator_第2张图片

2.0

这样我们就可以跳转了

转回我刚才提到的问题,点击返回按钮返回上一界面   这时我需要将navigation传递给我上面提到的NavigationView   navigation起到了传递整个navigator属性的作用 如图3.0

React—Native 控件之StackNavigator_第3张图片

在state中可以发现我们在之前路由中设置的所有属性  以及我从上一界面传递的数据都出现在了这里 所以navigation的定义是非常重要的

忘了说   在iOS中pop跳转函数在RN中调用的是:

this.props.navigation.goBack();

小结

至此我完成了StackNavigator的使用   大家如果有不明白的地方可以留言,下次小程同学来跟大家介绍SectionList,敬请期待哦。

你可能感兴趣的:(React—Native 控件之StackNavigator)