前言: 网上目前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跳转页面问题的更多相关文章

  1. [RN] React Native 实现 类似QQ 登陆页面

    [RN] React Native 实现 类似QQ 登陆页面 一.主页index.js 项目目录下index.js /** * @format */ import {AppRegistry} from ...

  2. React Native之ViewPagerAndroid 组件

    概述 今天我们来讲解一下关于 ViewPager 的使用,它是一个允许子视图左右滚动翻页的容器.我们知道在Android开发中系统有ViewPager这个组件,作用是实现滚动翻页的,在RN中也是有这么 ...

  3. react native 安卓home返回键页面刷新

    import { withNavigationFocus } from 'react-navigation'; class Warngreete extends React.Component { c ...

  4. React Native使用Navigator组件进行页面导航报this.props....is not a function错误

    在push的时候定义回调函数: this.props.navigator.push({ component: nextVC, title: titleName, passProps: { //回调 g ...

  5. 安装android Studio和运行react native项目(跳坑篇)

    1.需配环境变量,值为sdk的地址. ANDROID_HOME  值:E:\Users\HP\AppData\Local\Android\sdk 2.下载gradle-2.14.1-all.zip 包 ...

  6. react native 之页面跳转

    第一章  跳转的实现 1.component  中添加这行代码 <View style={styles.loginmain}> <Text style={styles.loginte ...

  7. React Native移动开发实战-3-实现页面间的数据传递

    React Native使用props来实现页面间数据传递和通信.在React Native中,有两种方式可以存储和传递数据:props(属性)以及state(状态),其中: props通常是在父组件 ...

  8. 我的第一个React Native App

    我用了三天时间实现了一个相对比较完整的React Native 新闻发布类型的示例.应用做得很简单,但大多React Native的组件都有用到,今天做一个分享(由于我电脑是Windows系统,所以只 ...

  9. 安装android Studio和运行react native项目(基础篇)

    ANDROID_HOME环境变量 确保ANDROID_HOME环境变量正确地指向了你安装的Android SDK的路径. 打开控制面板 -> 系统和安全 -> 系统 -> 高级系统设 ...

随机推荐

  1. Kicad使用经验谈

    最近开始学习使用Linux上的开源软件KiCad来绘制电路图和PCB.学习这个还是比较快的,用了两天了,觉得还是蛮方便的. 在这两天的使用以及今后的使用过程中,一定会有很多想要谈的.所以,就写下这篇博 ...

  2. [前端JS学习笔记]JavaScript function

    一.函数的声明 1.1 function 命令 function methodName(params) { // code } 如下声明: function test_function(params) ...

  3. Hdu 5568 sequence2 高精度 dp

    sequence2 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=556 ...

  4. TC srm 673 300 div1

    TC srm.673 300 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 Description 给你n(n<=50)匹马和n个人,一匹马和一个人能 ...

  5. BZOJ 1024: [SCOI2009]生日快乐 dfs

    1024: [SCOI2009]生日快乐 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/p ...

  6. 第一周:读取XML深度数据并将其重建为三维点云

    本周主要任务:学习PCL点云库,掌握利用PCL对点云处理的方法 任务时间:2014年9月1日-2014年9月7日 任务完成情况:完成了读取单幅xml深度数据,并重建三维点云并显示 任务涉及基本方法: ...

  7. 05.pathinfo的两种模式与模版和控制器之间的关系

    <?php function dump($data){ echo '<pre>'; var_dump($data); echo '</pre>'; } dump($_SE ...

  8. LINUX 内核文档地址

    Linux的man很强大,该手册分成很多section,使用man时可以指定不同的section来浏览,各个section意义如下: 1 - commands2 - system calls3 - l ...

  9. 【张泽华】android视频教程下载地址及上课源代码

    http://note.youdao.com/share/?id=f39bf918842c7b0673a033d35d734073&type=notebook#/1AC357745ED74BC ...

  10. 详细的OS X Yosemite 10.10懒人版安装教程

    永远记住一句话:难,是因为不会.先是要放宽心态,才更利于解决安装过程中这样那样的问题.多尝试多动脑,不要有过份的依赖.很多问题到解决以后,才发现是如此的简单,我装黑苹果是拿来使用的,所以我的目的是装好 ...