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 }
  • 相关阅读:
    无限维
    黎曼流形
    why we need virtual key word
    TOJ 4119 Split Equally
    TOJ 4003 Next Permutation
    TOJ 4002 Palindrome Generator
    TOJ 2749 Absent Substrings
    TOJ 2641 Gene
    TOJ 2861 Octal Fractions
    TOJ 4394 Rebuild Road
  • 原文地址:https://www.cnblogs.com/allenxieyusheng/p/7717641.html
Copyright © 2011-2022 走看看