zoukankan      html  css  js  c++  java
  • React-Native导航条(react-navigation)之createStackNavigator学习

    前言:

    现在混合开发已经越来越发火热,也许未来不久就会将原生开发一点一点吞噬掉,所以鄙人也开始了解一些关于RN相关知识,由于我是从iOS转过来并没有前端开发经验,对JS,ES6并不是很熟悉,所以上手很吃力,看官网并不能快速消化.只能看一些傻瓜式教程.   做APP开发页面跳转在项目中是最基本的.前段时间刚刚学习了在RN中的页面跳转.查阅了特别多的相关知识点.配合RN中文网https://reactnative.cn/docs/navigation/版本号(0.56).   里边提到开发导航有两种方式.    

    1.NavigatorIOS   2.React Navigation   

    先说第一种,我是做iOS的,看到NavigatorIOS显得格外的亲切,并且有提到他是基于iOS原生UINavgationController封装的,就更让人兴奋了.但是官方建议,如果只是开发iOS平台可以用这种,让我打消了学习他的念头,学习RN不就是为了他可以一套代码适用于安卓和苹果两端.所以我果断放弃.

    第二种方式React Navigation.官方也是推荐学习这种方式.他是一种单独的导航库,使用简单.

    首先安装库,在终端执行命令行:yarn add react-navigation.     yarn是Facebook提供的替代npm的工具,可以加速node模块的下载,如果没有安装yarn 命令行执行:  npm install -g yarn react-native-cli  安装完yarn后要设置镜像源: 1. yarn config set registry https://registry.npm.taobao.org --global                2. yarn config set disturl https://npm.taobao.org/dist --global 然后再去安装React Navigation库就可以了

    接下来实战, 我们需要使用的一个核心函数是createStackNavigator       ①要先引用该函数,②它需要一个路由配置对象.

    最简单的实例,实现两个界面跳转.首先我们先创建这两个界面文件,我将他们命名为HomeScreen,DetailScreen. 先看一下效果

     废话不多说,直接看代码  

     然后在看DetailScreen界面

    最后在App.js中

     这样就实现了简单页面跳转了. 但是在平时开发中并不会这么简单,肯定会有各种情况,比如产品经理会要求标题颜色,背景颜色.标题大小等等要求.咱们接着往下看

    还有很多属性,这里只简单例举几个常见的.太多就不一一介绍了.可自行百度就可以. 那么现在问题又来了.一个项目少说几十个界面.总不能每个界面都加这么一段代码吧.那多捞!!,肯定要设置一个全局的样式.如有个别页面有需求在单独设置即可. 我们需要在路由位置进行设置.

    到这里我们就实现了全局的设置导航条的样式.  在开发中经常会有界面传值.点击Home界面按钮.跳转Detail界面.传递值过去

    如果多个值就('Details',{那么:'传值'},{age:20})即可,然后在Details界面去接收一下即可.

     接下来我们看自定义返回按钮和导航条右侧按钮,因为平时开发中可能系统返回按钮并不符合需求.

    通过上边我们可以看到,返回按钮旁边有文字,默认是上个界面的title,首先去掉按钮旁边的文字,这里需要注意的是,比如想去掉Details页面的文字,那么我们需要在上个界面去操作.也就是Home界面.

    我们再次load界面,就会发现文字不见了!!下边是自定义返回按钮和右侧按钮 

    到这里我们就实现了基本的导航条功能.如果对你有帮助,请分享给身边的朋友.让我们一起进步!

    另外为了使大家能够快速掌握RN技术,并上手项目.升值加薪,楼主以超低价分享学习视频,从零基础到大神.加群领取

     我代码以图片的形式展示一是为了更直观的展示,另一方面是推荐大家敲一遍加深印象.如需源码请加群,交流学习!最后附上底部tabbar导航的学习分享:https://www.cnblogs.com/baxiu/p/9483115.html

  • 相关阅读:
    (笔试题)镇长选举
    (笔试题)最小的非“重复的数”
    ( 笔试题)只出现一次的数
    (算法)二叉树中两个结点的最近公共父结点
    (笔试题)区间最大重叠
    (剑指Offer)面试题61:按之字形顺序打印二叉树
    (算法)Partition方法求数组第k大的数
    (剑指Offer)面试题60:把二叉树打印成多行
    整理一些不错的、网上好评的电影、电视、视频等资源地址
    个人网站/博客,建站好的域名和网站供应商网站整理
  • 原文地址:https://www.cnblogs.com/baxiu/p/9469155.html
Copyright © 2011-2022 走看看