React Native之ViewPagerAndroid跳转页面问题
前言: 网上目前react-native的教程较少,加上许多帖子还是用的ES5(2015年6月已发布ES6标准),有些细节很难找到答案,这里把遇到的问题做一个分享,让学习者尽量少踩坑。
出现问题:
1.怎么获取ViewPager控件
2.怎么定义函数,使用setPage(),去跳转页面。
3.在使用了bind()的情况下,函数怎么传参。
解决方法:
步1.使用ref获取真实的DOM节点,类似去给控件设置id。
<ViewPagerAndroid style={styles.pageStyle} initialPage={this.state.selectedPage} ref="viewPage">
....
</ViewPagerAndroid>
步2.函数定义方式:
_onPageClick(position){
this.refs.viewPage.setPage(position);
}
步3.按钮的onPress()事件:
<TouchableOpacity onPress={this._onPageClick.bind(this,0)}>
....
</TouchableOpacity>
完整ViewPagerAndroid代码:
'use strict'
import React, { Component } from 'react';
import {
TouchableOpacity,
View,
Text,
StyleSheet,
ViewPagerAndroid,
} from 'react-native'
export default class MyViewPager extends Component{
constructor(props){
super(props);
this.state = {
selectedPage : 0,
};
}
/**接收传递过来的参数 */
componentDidMount(){
}
_onPageClick(position){
this.refs.viewPage.setPage(position);
}
render(){
return (
<View>
<View style={{flexDirection:'row'}}>
<View style={styles.tab}>
<TouchableOpacity onPress={this._onPageClick.bind(this,0)}>
<Text style={{textAlign:'center'}}>第一页</Text>
</TouchableOpacity>
</View>
<View style={styles.tab}>
<TouchableOpacity onPress={this._onPageClick.bind(this,1)}>
<Text style={{textAlign:'center'}}>第二页</Text>
</TouchableOpacity>
</View>
</View>
<ViewPagerAndroid style={styles.pageStyle} initialPage={this.state.selectedPage} ref="viewPage">
<View style={{backgroundColor:"red"}}>
<Text>First Page!</Text>
</View>
<View style={{backgroundColor:"yellow"}}>
<Text>Second Page!</Text>
</View>
</ViewPagerAndroid>
</View>
)
}
}
var styles = StyleSheet.create({
container: {
flex: 1,
flexDirection: 'row',
justifyContent: 'center',
alignItems: 'center',
backgroundColor: '#F5FCFF',
},
welcome: {
fontSize: 20,
textAlign: 'center',
margin: 10,
},
tab:{
height:30,
flex:1,
},
pageStyle: {
alignItems: 'center',
padding: 20,
height:200,
},
});
ps: 最后没有 AppRegistry.registerComponent(XX, () => XX);因为这个页面不是我的起始页。 模拟器页面截图:

React Native之ViewPagerAndroid跳转页面问题的更多相关文章
- [RN] React Native 实现 类似QQ 登陆页面
[RN] React Native 实现 类似QQ 登陆页面 一.主页index.js 项目目录下index.js /** * @format */ import {AppRegistry} from ...
- React Native之ViewPagerAndroid 组件
概述 今天我们来讲解一下关于 ViewPager 的使用,它是一个允许子视图左右滚动翻页的容器.我们知道在Android开发中系统有ViewPager这个组件,作用是实现滚动翻页的,在RN中也是有这么 ...
- react native 安卓home返回键页面刷新
import { withNavigationFocus } from 'react-navigation'; class Warngreete extends React.Component { c ...
- React Native使用Navigator组件进行页面导航报this.props....is not a function错误
在push的时候定义回调函数: this.props.navigator.push({ component: nextVC, title: titleName, passProps: { //回调 g ...
- 安装android Studio和运行react native项目(跳坑篇)
1.需配环境变量,值为sdk的地址. ANDROID_HOME 值:E:\Users\HP\AppData\Local\Android\sdk 2.下载gradle-2.14.1-all.zip 包 ...
- react native 之页面跳转
第一章 跳转的实现 1.component 中添加这行代码 <View style={styles.loginmain}> <Text style={styles.loginte ...
- React Native移动开发实战-3-实现页面间的数据传递
React Native使用props来实现页面间数据传递和通信.在React Native中,有两种方式可以存储和传递数据:props(属性)以及state(状态),其中: props通常是在父组件 ...
- 我的第一个React Native App
我用了三天时间实现了一个相对比较完整的React Native 新闻发布类型的示例.应用做得很简单,但大多React Native的组件都有用到,今天做一个分享(由于我电脑是Windows系统,所以只 ...
- 安装android Studio和运行react native项目(基础篇)
ANDROID_HOME环境变量 确保ANDROID_HOME环境变量正确地指向了你安装的Android SDK的路径. 打开控制面板 -> 系统和安全 -> 系统 -> 高级系统设 ...
随机推荐
- 求一列的和,awk和perl哪个快?
下午和群里的朋友争论了一下,有关awk和perl处理文本的速度,自己一直比较推崇perl,对awk知之甚少,结果就想当然的觉得perl快,结果一番争吵后,觉得还是实验一下靠谱,(其实是想证明一下per ...
- opennebula虚拟机启动失败
问题1 故障现象: Wed Jan :: [DiM][I]: New VM state is ACTIVE. Wed Jan :: [LCM][I]: New VM state is PROLOG. ...
- 字符串匹配 - KMP算法
#include<cstdio> #include<cstring> #include<cstdlib> void GetNext(char *t,int *nex ...
- oracle安装界面中文乱码解决
在安装oracle时如果我们用的是英文安装没有任何问题,但是我要安装中文的,结果中文界面就出现了乱码了,后来网上找了原因是要安装中文包才可以,下面我来介绍一下. 在Linux的X window里安装o ...
- Hash Table构建
get-item e:\test\* |format-table @{name="aa";expression={$_.name.tostring().split(".& ...
- c# 反射学习笔记
首先了解C#反射的概念,反射是一个运行库类型发现的过程.通过反射可以得到一个给定程序集所包含的所有类型的列表, 这个列表包括给定类型中定义的方法.字段.属性和事件.也可以动态的发现一组给定类支持的借口 ...
- C#文件读写常用类介绍
首先要熟悉.NET中处理文件和文件夹的操作.File类和Directory类是其中最主要的两个类.了解它们将对后面功能的实现提供很大的便利. 本节先对和文件系统相关的两个.NET类进行简要介 ...
- 云计算平台(检索篇)-Elasticsearch
前段时间为公司基于Elasticsearch(下面简称ES)做了一套检索平台,下面将这段时间积累的一些知识与大家分享,如有不对之处,欢迎大家多多批评与建议.针对Elasticsearch由于东西还是比 ...
- JAVA(2)——JDBC
刚接触JDBC的时候,有时候就在想,为什么java要用JDBC,而不是直接使用之前在VB中就学习过的ODBC,由于ODBC是在JDBC之前出现,所以ODBC肯定由于无法完毕某些操作或者不能非常顺利的完 ...
- ptrace x64 转
#include <sys/ptrace.h> #include <sys/types.h> #include <sys/wait.h> #include < ...