美文网首页OC语法
React—Native 控件之StackNavigator

React—Native 控件之StackNavigator

作者: 行走的老程 | 来源:发表于2018-01-10 09:56 被阅读529次

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

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

    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 在这个界面我多说一句,加上它

    2.0

    这样我们就可以跳转了

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

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

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

    this.props.navigation.goBack();

    小结

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

    相关文章

      网友评论

        本文标题:React—Native 控件之StackNavigator

        本文链接:https://www.haomeiwen.com/subject/wdwnnxtx.html