zoukankan      html  css  js  c++  java
  • RN返回navigation方法

    RN官方指定的路由管理是navigation  通过打印我们可以得到navgation的相关属性

    1:dispatch ,Redux的事件发起

    2:goback()返回

    3:navigate(routeName,{parmas:xxx}) 界面跳转并且添加参数(或者是回调函数)

    4:state:这个对象里面有 当前的routename/key/和params参数

    这里讨论的是A-B之间的数据交互

    1:事件监听

    事件监听类似于iOS原生的通知,一个发,一个收即可.

    A界面收:

    1 import {
    2     DeviceEventEmitter
    3 } from 'react-native';
    复制代码
     1  componentDidMount() {
     2         //收到监听
     3         this.listener = DeviceEventEmitter.addListener('通知名称',(e)=>{
     4             alert(e)
     5         });
     6     }
     7     componentWillUnmount(){
     8         // 移除监听 
     9         this.listener.remove();
    10     }
    复制代码

    B界面在pop回A界面的时候发:

    1 import {
    2     DeviceEventEmitter
    3 } from 'react-native';
    1     pop = ()=>{
    2         let value = '监听'   //准备一个值
    3         DeviceEventEmitter.emit('通知名称',value); //发监听
    4         this.props.navigator.pop({ })
    5     }

    2:事件回调 

    A界面在push到B界面的时候定义个回调函数

    复制代码
    1 push = () =>{
    2     this.props.navigator.push({
    3         component:DetailsView,
    4         passProps:{
    5             callback:(msg)=>{ alert(msg) }
    6         }
    7     })
    8 }
    //在navigation中:
    this.props.navigation.navigate(routeName,{callback:(parmas)=>this.fun(params)})
    复制代码

    B界面在pop回A界面的时候调用该回调函数

    复制代码
    1 pop = () =>{
    2 
    3     this.props.navigator.pop({
    4     })
    5 
    6     if(this.props.callback){
    7         this.props.callback('回调')
        // this.props.navigation.state.params.callback("params") 8 } 9 }
  • 相关阅读:
    用队列打印杨辉三角
    mysql允许远程连接
    window文件恢复工具
    android 虚拟机没有sd卡
    StringUtils 的填充方法
    plsql 中出现 Dynamic Performance Tables not accessible 问题解决
    oracle数据库服务介绍
    遮罩的使用
    <pre>标签
    总结五个小技巧定位数据库性能问题
  • 原文地址:https://www.cnblogs.com/allenxieyusheng/p/7717641.html
Copyright © 2011-2022 走看看