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: 提供从屏幕左侧滑入的抽屉
     
    未完待续......
  • 相关阅读:
    登陆中发现css页面不见了,变成了光秃秃的输入框问题
    servlet基础一
    解决问题:Error:(5, 59) java: 程序包javax.servlet.http不存在
    静态方法的引用
    登录功能之添加验证码(包含切换验证码)
    生成图片验证码(VerifyCode)
    idea编辑器中批量完成注释及批量取消注释
    jdbc连接测试
    利用IO流复制图片
    js 判空
  • 原文地址:https://www.cnblogs.com/zyl-Tara/p/9480138.html
Copyright © 2011-2022 走看看