【React Native】页面跳转(七)
来源:互联网 发布:淘宝客服要交保证金吗 编辑:程序博客网 时间:2024/06/01 11:59
本文学习React Native如何进行页面跳转,以及页面跳转间参数传递。
目前React Native中文网主推的页面跳转方式为React Navigation。它的使用非常简单:
1、安装导航库:npm install --save react-navigation
2、引入 import {StackNavigator} from 'react-navigation';
3、StackNavigator的声明:
const App = StackNavigator({ List: {screen: List}, Detail: {screen: Detail},});以上代码就可完成路由的配置,可以看到我一共配置了两个页面。一个是产品列表页List.js,另一个是产品详情页Detail.js。
假设页面A要调到页面B,B再回退到A。
一、如何页面跳转?
1、从props中取出navigation的navigate方法(只要把组件加入到StackNavigator中,就会自动传入props);
const {navigate} = this.props.navigation;
2、通过navigate方法跳转
<View> <FlatList style={styles.row} numColumns={3} keyExtractor={item => item.id} onRefresh={this.fetchdata} refreshing={refreshing} data={movies} renderItem={ ({item}) => <Item title={item.title} image={item.images.medium} stars={item.rating.stars} onPress={() => navigate('Detail',{ id: item.id, })}/> } /> </View>
3、通过navigate回退(1)取出navigation的goBack方法
const {goBack} = this.props.navigation;(2)调用goBack方法
<View> <Text>电影详情页</Text> <Text>电影id:{state.params.id}</Text> <Text onPress={() => goBack()}>返回</Text> </View>
二、页面跳转如何传参?
1、B如何接收值?
const {state} = this.props.navigation;从navigation中取出state值,这个值就是页面跳转传过来的值
2、A如何收到B回退传过来的值?
(1)在A中定义一个callback方法,并且把callback方法传给B
a)在state中加一个childState
state = { movies: movies.subjects, refreshing: false, childState: '', };
b)在render中取出childState
const {movies, refreshing, childState} = this.state;
c)定义一个callback方法,在callback中setState
<View> <Text>子组件返回的数据:{childState}</Text> <FlatList style={styles.row} numColumns={3} keyExtractor={item => item.id} onRefresh={this.fetchdata} refreshing={refreshing} data={movies} renderItem={ ({item}) => <Item title={item.title} image={item.images.medium} stars={item.rating.stars} onPress={() => navigate('Detail',{ id: item.id, callback: (data) => { this.setState({ childState: data }) } })}/> } /> </View>
(2)在B中传值
a)从navigation中取出state值
const {state, goBack} = this.props.navigation;
b)通过state的callback方法回调
return ( <View> <Text>电影详情页</Text> <Text>电影id:{state.params.id}</Text> <Text onPress={() => { state.params.callback("test"); goBack(); }}>返回</Text> </View> );
demo地址
阅读全文
0 0
- 【React Native】页面跳转(七)
- react-native 页面跳转
- react-native页面的跳转
- react-native Navigator 页面跳转
- React Native 学习笔记十一(页面跳转)
- React-native页面跳转传值实现
- 从React Native 跳转到原生页面
- react-native 页面跳转与数据操作
- [React Native]使用导航器跳转页面
- react-native ViewPageAndroid页面跳转问题
- React Native:页面跳转传值
- React Native 入门(七)
- react-native使用react-navigation进行页面跳转导航
- React Native 页面跳转react-navigation导航器的使用
- RN(react native)入坑指南-07,使用navigator实现页面跳转
- React Native 篇之 自定义组件、引入组件、页面跳转
- React Native Navigator 的路由以及页面跳转
- 关于React Native 跳转到原生页面界面详解
- 神奇DP [HNOI2004] 打砖块
- 服务器与客户端模型SIGPIPIE信号
- 系统学习深度学习(四十二)--FPN
- spring 原理解析
- Linux生成core文件及gdb调试
- 【React Native】页面跳转(七)
- 新手linux下安装redis,docker教程
- 第2周项目1 函数参数传递的三种方式
- 跟踪Spring MVC请求
- 【HDU】 1008 Elevator
- Struts便签,if条件判断
- Python入门<七>
- 简单的对象转json格式
- Ubuntu看编译器配置 make menuconfig