0

0

react navigation方法怎么用

藏色散人

藏色散人

发布时间:2023-01-03 09:54:31

|

2343人浏览过

|

来源于php中文网

原创

react navigation会在所有注册路由页面的props里面注入navigation,其使用方法:1、通过“const Main = createStackNavigator({...})”方式创建主路由;2、通过“createBottomTabNavigator”创建底部标签栏;3、通过“createSwitchNavigator”创建特殊switch路由等。

react navigation方法怎么用

本教程操作环境:Windows10系统、react18.0.0版、Dell G3电脑。

react navigation方法怎么用?

react-navigation 常用方法

react-navigation是rn项目使用路由管理器;除了提供路由history管理,还有导航器的ui组件!;

react-navigation会在所有注册路由页面的props里面注入navigation!!!

1.创建主路由;

createStackNavigator

其中包括项目中所使用的基本所有的页面路由;

const Main = createStackNavigator({
    Tab: {
        screen: Tab,
        navigationOptions:{
            header:null
        }
    }
     。。。
},{
    initialRouteName :'Tab',   
})

2.创建底部标签栏;

createBottomTabNavigator

即app首页底部的几个tab分页

const Tab = createBottomTabNavigator({
    Home: {
        screen: Home,
        navigationOptions:{
            header:null,
            title:'最热',
            tabBarIcon:({focused,tintColor})=>{
                return (
                    
                )
            }    
        }
    },
   。。。
},{
    initialRouteName :'Home',
    tabBarOptions:{
        activeTintColor:'#1d85d0' 
    }
})

3.创建特殊switch路由; 跳转之前的页面将不会进入history堆栈;

createSwitchNavigator
//欢迎页跳转不可返回
const Navigation = createSwitchNavigator({
    Init:Init,
    Main:Main
},{
    initialRouteName :'Init'
})

4.创建顶部tab页标签,会占用导航栏位置

createMaterialTopTabNavigator
export default class Home extends Component {
  render() {
    const TabNav = createMaterialTopTabNavigator({
      Tab1:{
        screen: Tab1,
        navigationOptions:{
            title:'tab1',
            header:null
        }
      }
。。。
   
    },{。。。}) 
    return (
      
    ) 
  }
}

5.navigationOptions常用的配置属性

headerTtile: 页面标题

headerTitleStyle: 标题文字的样式

headerStyle:标题整块的样式

6.tab部分的参考属性

tabBarOptions - 具有以下属性的对象:
activeTintColor -活动选项卡的标签和图标颜色。
activeBackgroundColor -活动选项卡的背景色。
inactiveTintColor -"非活动" 选项卡的标签和图标颜色。
inactiveBackgroundColor -非活动选项卡的背景色。
showLabel -是否显示选项卡的标签, 默认值为 true。
showIcon - 是否显示 Tab 的图标,默认为false。
style -选项卡栏的样式对象。
labelStyle -选项卡标签的样式对象。
tabStyle -选项卡的样式对象。
allowFontScaling -无论标签字体是否应缩放以尊重文字大小可访问性设置,默认值都是 true。
safeAreaInset - 为  组件重写 forceInset prop, 默认值:{ bottom: 'always', top: 'never' }; top | bottom | left | right 的可选值有: 'always' | 'never'。

BottomTabBar组件也可以草考这个属性

7.制作返回功能

通常我们在需要返回的页面上使用 this.props.navigation 获取到navigation 的props对象;

家电小商城网站源码1.0
家电小商城网站源码1.0

家电公司网站源码是一个以米拓为核心进行开发的家电商城网站模板,程序采用metinfo5.3.9 UTF8进行编码,软件包含完整栏目与数据。安装方法:解压上传到空间,访问域名进行安装,安装好后,到后台-安全与效率-数据备份还原,恢复好数据后到设置-基本信息和外观-电脑把网站名称什么的改为自己的即可。默认后台账号:admin 密码:132456注意:如本地测试中127.0.0.1无法正常使用,请换成l

下载

可以使用

this.props.navigation.goBack()

来返回页面;但是这样做的前提是 this.props.navgation必须是当前页面的navigation;即可以查看 this.props.navigation.state.routeName 来判断:

某些特殊的情况下,比如安卓返回键的返回判断有可能返回事件不是在该页面捕获,因为回退事件BackHandler是会向上传递的; 那么this.props.navigation可能就不是需要回退的压面的navigation对象了;所以已使用go.Back()是不会成功的;或者有些情况下naviagtion对象不一定有goBack()方法 也会造成这个问题;

例如;

home页面是一级路由,detail页面是二级路由,两个页面都设置了BackHandler的回调函数;若detai里面的BackHandler没有被当前页面捕获的话就会传递给home里面的BackHandler回调函数;那么在home里的 this.props.navigation就是指的home页面的,而不是detail,所以调用goBack也不会成功!!!

解决方法:

使用NavigationActions ;

所有NavigationActions返回可以使用navigation.dispatch()方法发送到路由器的对象。

支持以下操作:

Navigate - 导航到另一条路由

Back - 回到之前的状态

Set Params - 设置给定路由的参数

Init - 用于在状态未定义时初始化第一个状态

具体看文档:https://reactnavigation.org/docs/zh-Hans/navigation-actions.html

通过:

dispatch(NavigationActions.back());

就可以实行返回操作了;

注意:

dispatch()方法是在 this.props.navigation里面的

推荐学习:《react视频教程

相关专题

更多
html版权符号
html版权符号

html版权符号是“©”,可以在html源文件中直接输入或者从word中复制粘贴过来,php中文网还为大家带来html的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

616

2023.06.14

html在线编辑器
html在线编辑器

html在线编辑器是用于在线编辑的工具,编辑的内容是基于HTML的文档。它经常被应用于留言板留言、论坛发贴、Blog编写日志或等需要用户输入普通HTML的地方,是Web应用的常用模块之一。php中文网为大家带来了html在线编辑器的相关教程、以及相关文章等内容,供大家免费下载使用。

655

2023.06.21

html网页制作
html网页制作

html网页制作是指使用超文本标记语言来设计和创建网页的过程,html是一种标记语言,它使用标记来描述文档结构和语义,并定义了网页中的各种元素和内容的呈现方式。本专题为大家提供html网页制作的相关的文章、下载、课程内容,供大家免费下载体验。

470

2023.07.31

html空格
html空格

html空格是一种用于在网页中添加间隔和对齐文本的特殊字符,被用于在网页中插入额外的空间,以改变元素之间的排列和对齐方式。本专题为大家提供html空格的相关的文章、下载、课程内容,供大家免费下载体验。

245

2023.08.01

html是什么
html是什么

HTML是一种标准标记语言,用于创建和呈现网页的结构和内容,是互联网发展的基石,为网页开发提供了丰富的功能和灵活性。本专题为大家提供html相关的各种文章、以及下载和课程。

2895

2023.08.11

html字体大小怎么设置
html字体大小怎么设置

在网页设计中,字体大小的选择是至关重要的。合理的字体大小不仅可以提升网页的可读性,还能够影响用户对网页整体布局的感知。php中文网将介绍一些常用的方法和技巧,帮助您在HTML中设置合适的字体大小。

505

2023.08.11

html转txt
html转txt

html转txt的方法有使用文本编辑器、使用在线转换工具和使用Python编程。本专题为大家提供html转txt相关的文章、下载、课程内容,供大家免费下载体验。

312

2023.08.31

html文本框代码怎么写
html文本框代码怎么写

html文本框代码:1、单行文本框【<input type="text" style="height:..;width:..;" />】;2、多行文本框【textarea style=";height:;"></textare】。

425

2023.09.01

PS使用蒙版相关教程
PS使用蒙版相关教程

本专题整合了ps使用蒙版相关教程,阅读专题下面的文章了解更多详细内容。

23

2026.01.19

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
React 教程
React 教程

共58课时 | 3.8万人学习

国外Web开发全栈课程全集
国外Web开发全栈课程全集

共12课时 | 1.0万人学习

React核心原理新老生命周期精讲
React核心原理新老生命周期精讲

共12课时 | 1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号