zoukankan      html  css  js  c++  java
  • react-navigation学习笔记

    1.关于this.props.navigation.navigate()与this.props.navigation.push()的区别

    navigate方法在跳转时会在已有的路由堆栈中查找是否已经存在该值,若存在将直接跳转到之前存在的地址。并且只有当路由堆栈中不存在这个新路由时才会添加。此情况下使用this.props.navigation.popToTop()方法无法生效。
    
    push方法则总是向路由堆栈中添加,无论之前是否存在。此时使用this.props.navigation.popToTop()方法可以达到回到栈顶路由的位置。

    2.路由传参

    this.props.navigation.push('路由名称',{ '参数名': '值',[ 其他参数]})

    3.获取参数

    this.props.navigation.getParam('参数名',[默认值])
     
    4.使用setParams更新已经挂在的活动窗口的导航选项
     
    this.props.navigation.setParams({otherParam: 'Updated!'})
     
    5.可以从任何组件访问到navigation,获取路由相关信息
    import { withNavigation } from 'react-navigation';
    // 然后将需要访问路由的组件用该方法包裹,如
    withNavigation(‘组件名’)

    6.替换路由

    this.props.navigation.replace();

    7.定义动态路由

    const SimpleApp = createStackNavigator({
      Home: { screen: HomeScreen },
      Chat: {
        screen: ChatScreen,
        path: 'chat/:user', //传参数的规则
      },
    });

    8.URI前缀

    const SimpleApp = createStackNavigator({...});
    
    const prefix = Platform.OS == 'android' ? 'mychat://mychat/' : 'mychat://';
    
    const MainApp = () => <SimpleApp uriPrefix={prefix} />;

    9.核心方法

    createStackNavigator: 一次渲染一个屏幕并提供屏幕之间的转换。打开新屏幕时,它将放置在堆栈顶部

    createBottomTabNavigator: 呈现一个标签栏,允许用户在多个屏幕之间切换

    createSwitchNavigator: 在一个屏幕和另一个屏幕之间切换,顶部没有UI,当它们变为非活动状态时卸载屏幕

    createDrawerNavigator: 提供从屏幕左侧滑入的抽屉
     
    未完待续......
  • 相关阅读:
    /、./和../的区别
    【Java基础】-- FileUtils工具类常用方法
    【数据库】-- MySQL中比like更高效的三个写法
    【Java框架】-- SpringBoot大文件RestTemplate下载解决方案
    记一次gitlab代码仓清空还原复盘
    聊聊如何实现一个带有拦截器功能的SPI
    聊聊如何实现一个支持键值对的SPI
    类实例对象的class类型却不属于该类,何解?
    exe打包成安装文件(界面美观)
    linux系统软件启动sh脚本
  • 原文地址:https://www.cnblogs.com/zyl-Tara/p/9480138.html
Copyright © 2011-2022 走看看