博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
react-native页面之间的相互传值
阅读量:4323 次
发布时间:2019-06-06

本文共 2506 字,大约阅读时间需要 8 分钟。

react-native页面之间的相互传值

之前在自己学习react-native的时候,在页面跳转和传值问题上花了一段时间去网上搜索和查找资料,自己总结了两个方法。可以参考  和 

首先设置一个不带参数的页面跳转使用navigation
切换路由方法:

  • this.props.navigation.goBack() 返回上一层
  • this.props.navigation.popToTop() 返回堆栈最顶层
  • this.props.navigation.push(‘Details’) 继续往下推送新的路由,相当于子页面的子页面
  • this.props.navigation.navigate(‘Details’) 将新路由推送到导航器中,如果没有在导航器中,则跳转到该页面

父页面:

import {Component} from "react";import {    Text,AlertStatic as Alert,    TouchableOpacity,    View,    DeviceEventEmitter} from "react-native";import {createStackNavigator} from "react-navigation";import B from '../B.js';calss A extends Component {    render(){        return(            
{ this.props.navigation.navigate('B') } }>
点击跳转
) }}const HomeScreen = createStackNavigator({ Home: {screen: A}, Details: {screen: B},});module.exports = A;

子页面:

import {Component} from "react";import {    Text,    TouchableOpacity,    View,    DeviceEventEmitter} from "react-native";class B extends Component {    render(){            return(                
{ this.props.navigation.goBack(); } }>
点击返回
) }}module.exports = B;

接下来带参数传递

父页面传给子页面

{ this.props.navigation.navigate('B',{ params:xx, }) }}>

子页面接收参数

constructor(props){    super(props);    const {navigation} = this.props;    let yy = navigation.getParam("params"); }

这样子页面就获取到父页面传递过来的值了。

然后是子页面带参数返回页面
方法一:
子页面传递参数

{ this.props.navigation.state.params.callBack(params); this.props.navigation.goBack(); }}>
点击返回

父页面接收参数

{ this.props.navigation.navigate('B',{ params:xx, callBack:(params) =>{ Alert(params); } }) }}>

方法二:添加一个监听器DeviceEventEmitter

子页面

TouchableOpacity onpress={    ()=>{        DeviceEventEmitter.emit('returnData',params);        this.props.navigation.goBack();    }}>    
点击返回

父页面

componentDidMount() {     DeviceEventEmitter.addListener("returnData", (params) => {            Alert(params);        })}

OK,就这样了~~~

转载于:https://www.cnblogs.com/Buries/p/10985937.html

你可能感兴趣的文章
thinksns 分页数据
查看>>
os模块
查看>>
LINQ to SQL vs. NHibernate
查看>>
基于Angular5和WebAPI的增删改查(一)
查看>>
windows 10 & Office 2016 安装
查看>>
最短路径(SP)问题相关算法与模板
查看>>
js算法之最常用的排序
查看>>
Python——交互式图形编程
查看>>
经典排序——希尔排序
查看>>
团队编程项目作业2-团队编程项目代码设计规范
查看>>
英特尔公司将停止910GL、915GL和915PL芯片组的生产
查看>>
Maven配置
查看>>
HttpServletRequest /HttpServletResponse
查看>>
SAM4E单片机之旅——24、使用DSP库求向量数量积
查看>>
从远程库克隆库
查看>>
codeforces Unusual Product
查看>>
hdu4348 - To the moon 可持久化线段树 区间修改 离线处理
查看>>
正则表达式的搜索和替换
查看>>
个人项目:WC
查看>>
地鼠的困境SSL1333 最大匹配
查看>>