详解js界面跳转与值传递


Posted in Javascript onNovember 22, 2016

本文实例实现的功能如下:注册页(Register.js),点击注册,跳到注册结果页(RegisterResult.js),并将注册的手机号传递过去,显示xx注册成功。

index.Android.js

'use strict'
import React, { Component } from 'react';
import { AppRegistry,Navigator,BackAndroid} from 'react-native';

var Register = require('./study/Register');
let RegisterResult = require('./study/RegisterResult');
var NaviModule = React.createClass({

  //告知Navigator模块,我们希望在视图切换时,用什么效果
  configureScene:function(route){
    return Navigator.SceneConfigs.FadeAndroid;
  },

  //告知Navigator模块,我们希望如何挂接当前视图
  renderScene:function(router,navigator){
    this._navigator = navigator;
    switch(router.name){
      case "register":
        return <Register navigator = {navigator}/>
      case "registerResult":
        return <RegisterResult telephoneNumber = {router.telephoneNumber} navigator = {navigator}/>

    }
  },

  //React的生命周期函数---组件被挂接时调用
  componentDidMount:function(){
    var navigator = this._navigator;
    BackAndroid.addEventListener('NaviModuleListener',()=>{
      if (navigator && navigator.getCurrentRoutes().length > 1) {
        navigator.pop();
        return true;
      }
      return false;
    });
  },

  //React的生命周期函数---组件被移除时调用
  componentWillUnmount: function(){
    BackAndroid.removeEventListener('NaviModuleListener');
  },

  render:function(){
    return (
      <Navigator
        initialRoute = {{name:'register'}}
        configureScene = {this.configureScene}
        renderScene = {this.renderScene} />
      );
  }

});

AppRegistry.registerComponent('FirstDemo', () => NaviModule);

注册页(Register.js)

'use strict'
import React, { Component } from 'react';
import {
 AppRegistry,
 StyleSheet,
 Text,
 View,
 TextInput
} from 'react-native';

let Dimensions = require('Dimensions');
let totalWidth = Dimensions.get('window').width;
let leftStartPoint = totalWidth * 0.1;
let componetWidth = totalWidth * 0.8;

let Register = React.createClass({

  getInitialState:function(){
    return {
      inputedNum :'',
      inputedPW:'',
  },

  updatePW: function(newText){
    this.setState({inputedPW : newText});
  },

 render: function() {
  return (
   <View style={styles.container}>
    <TextInput style = {styles.numberInputStyle}
     placeholder = {'请输入手机号'}
     onChangeText = {(aa) => this.setState({inputedNum :aa})}/>
    <Text style={styles.textPromptStyle}>
     您输入的手机号:{this.state.inputedNum}
    </Text>
    <TextInput style={styles.passwordInputStyle}
     placeholder = {'请输入密码'}
     password = {true}
     onChangeText = {(newText) => this.updatePW(newText)}/>
    <Text style={styles.bigTextPrompt}
     onPress = {this.userRegister}>
     注 册
    </Text>
   </View>);
 },

 userRegister:function(){
  this.props.navigator.replace({
   telephoneNumber : this.state.inputedNum,
   name: 'registerResult',
  });
 }

});

const styles = StyleSheet.create({
 container: {
  flex: 1,
  flexDirection:'column',
  justifyContent: 'center',
  backgroundColor: '#F5FCFF',
 },
 numberInputStyle:{
  top:20,
  left:leftStartPoint,
  width:componetWidth,
  backgroundColor:'gray',
  fontSize:20
 },
 textPromptStyle:{
  top:30,
  left:leftStartPoint,
  width:componetWidth,
  fontSize:20
 },
 passwordInputStyle:{
  top:50,
  left:leftStartPoint,
  width:componetWidth,
  backgroundColor:'gray',
  fontSize:20
 },
 bigTextPrompt:{
  top:70,
  left:leftStartPoint,
  width:componetWidth,
  backgroundColor:'gray',
  color:'white',
  textAlign:'center',
  fontSize:60
 }
});

module.exports = Register;

注册结果页RegisterResult.js

'use strict'
import React, { Component } from 'react';
import {
 AppRegistry,
 StyleSheet,
 Text,
 View,
 TextInput
} from 'react-native';

let RegisterResult = React.createClass({

  render:function(){
    return(
      <View style = {styles.container}>
        <Text style = {styles.text}>
          {this.props.telephoneNumber}注册成功
        </Text>
      </View>
    );
  }

});

const styles = StyleSheet.create({
  container: {
  flex: 1,
  flexDirection:'column',
  justifyContent: 'center',
  alignItems:'center',
  backgroundColor: '#F5FCFF',
 },
 text:{
  flexWrap:'wrap',
  backgroundColor:'gray',
  fontSize:20,
  paddingTop:10,
  paddingBottom:10,
  paddingLeft:25,
  paddingRight:25
 },
});

module.exports = RegisterResult;

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Javascript开发包大全整理
Dec 22 Javascript
页面中js执行顺序
Nov 09 Javascript
jQuery 表单验证扩展(四)
Oct 20 Javascript
通过百度地图获取公交线路的站点坐标的js代码
May 11 Javascript
js里取容器大小、定位、距离等属性搜集整理
Aug 19 Javascript
目前流行的JavaScript库的介绍及对比
Sep 29 Javascript
jQuery.holdReady()方法用法实例
Dec 27 Javascript
灵活使用数组制作图片切换js实现
Jul 28 Javascript
JS实现简单的天数计算器完整实例
Apr 28 Javascript
解决vue.js在编写过程中出现空格不规范报错的问题
Sep 20 Javascript
jQuery NProgress.js加载进度插件的简单使用方法
Jan 31 jQuery
jQuery实现高度灵活的表单验证功能示例【无UI】
Apr 30 jQuery
js实现界面向原生界面发消息并跳转功能
Nov 22 #Javascript
JavaScript面向对象分层思维全面解析
Nov 22 #Javascript
浅析location.href跨窗口调用函数
Nov 22 #Javascript
Angular和Vue双向数据绑定的实现原理(重点是vue的双向绑定)
Nov 22 #Javascript
AngularJS全局scope与Isolate scope通信用法示例
Nov 22 #Javascript
基于js实现checkbox批量选中操作
Nov 22 #Javascript
BootStrap中关于Select下拉框选择触发事件及扩展
Nov 22 #Javascript
You might like
php的正则处理函数总结分析
2008/06/20 PHP
php实现过滤UBB代码的类
2015/03/12 PHP
php mysql like 实现多关键词搜索的方法
2016/10/29 PHP
Yii框架getter与setter方法功能与用法分析
2019/10/22 PHP
javascript addBookmark 加入收藏 多浏览器兼容
2009/08/15 Javascript
jquery 获取表单元素里面的值示例代码
2013/07/28 Javascript
我的Node.js学习之路(四)--单元测试
2014/07/06 Javascript
JavaSacript中charCodeAt()方法的使用详解
2015/06/05 Javascript
AngularJS自动表单验证
2016/02/01 Javascript
AngularJS自定义服务与fliter的混合使用
2016/11/24 Javascript
JavaScript基本类型值-Number类型
2017/02/24 Javascript
详谈js中数组(array)和对象(object)的区别
2017/02/27 Javascript
js实现多张图片延迟加载效果
2017/07/17 Javascript
jquery学习笔记之无new构建详解
2017/12/07 jQuery
VS Code转换大小写、修改选中文字或代码颜色的方法
2017/12/15 Javascript
vue2.0 实现页面导航提示引导的方法
2018/03/13 Javascript
Vue 项目中遇到的跨域问题及解决方法(后台php)
2018/03/28 Javascript
jQuery实现表格隔行换色
2018/09/01 jQuery
Vue动态创建注册component的实例代码
2019/06/14 Javascript
聊聊鉴权那些事(推荐)
2019/08/22 Javascript
Vue.js组件使用props传递数据的方法
2019/10/19 Javascript
[51:29]Alliance vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
详解python单例模式与metaclass
2016/01/15 Python
win10系统中安装scrapy-1.1
2016/07/03 Python
Python 实现 贪吃蛇大作战 代码分享
2016/09/07 Python
python实现最长公共子序列
2018/05/22 Python
使用python和pygame制作挡板弹球游戏
2019/12/03 Python
如何在mac版pycharm选择python版本
2020/07/21 Python
python 如何上传包到pypi
2020/12/24 Python
CSS3中的5个有趣的新技术
2009/04/02 HTML / CSS
中学劳技课教师的自我评价
2014/02/05 职场文书
领导调研接待方案
2014/02/27 职场文书
2014年党员学习“三严三实”思想汇报
2014/09/15 职场文书
维稳工作情况汇报
2014/10/27 职场文书
Python 解决空列表.append() 输出为None的问题
2021/05/23 Python
python装饰器代码解析
2022/03/23 Python