• 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 }
  • 相关阅读:
    洛谷 P1990 覆盖墙壁
    洛谷 P1033 自由落体
    洛谷 P2049 魔术棋子
    洛谷 P2183 巧克力
    poj_1743_Musical Theme(后缀数组)
    Codeforces Round #367 (Div. 2) D. Vasiliy's Multiset
    Codeforces Round #367 (Div. 2) C. Hard problem
    hdu_5831_Rikka with Parenthesis II(模拟)
    hdu_5826_physics(物理题)
    hdu_5821_Ball(贪心)
  • 原文地址:https://www.cnblogs.com/allenxieyusheng/p/7717641.html
Copyright © 2020-2023  润新知