详解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 相关文章推荐
jquery 锁定弹出层实现代码
Feb 23 Javascript
利用javascript实现web页面中指定区域打印
Oct 30 Javascript
javascript实现在指定元素中垂直水平居中
Sep 13 Javascript
jQuery实现滑动页面固定顶部显示(可根据显示位置消失与替换)
Oct 28 Javascript
Jquery $when done then的用法详解
May 20 Javascript
AJAX和jQuery动态加载数据的实现方法
Dec 05 Javascript
浅谈node中的exports与module.exports的关系
Aug 01 Javascript
JS实现移动端判断上拉和下滑功能
Aug 07 Javascript
vue自定义全局组件(自定义插件)的用法
Jan 30 Javascript
了解JavaScript函数中的默认参数
May 30 Javascript
JavaScript复制变量三种方法实例详解
Jan 09 Javascript
js实现扫雷源代码
Nov 27 Javascript
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 array_filter除去数组中的空字符元素
2020/06/21 PHP
php中邮箱地址正则表达式实现与详解
2012/04/24 PHP
浅谈php错误提示及查错方法
2015/07/14 PHP
php array_values 返回数组的值实例详解
2016/11/17 PHP
PHP使用正则表达式实现过滤非法字符串功能示例
2018/06/04 PHP
jscript之Read an Excel Spreadsheet
2007/06/13 Javascript
Javascript 定时器调用传递参数的方法
2009/11/12 Javascript
JQuery 写的个性导航菜单
2009/12/24 Javascript
JavaScript使用IEEE 标准进行二进制浮点运算产生莫名错误的解决方法
2011/05/28 Javascript
JQuery each()函数如何优化循环DOM结构的性能
2012/12/10 Javascript
详解JavaScript模块化开发
2016/12/04 Javascript
Vue.js框架路由使用方法实例详解
2017/08/25 Javascript
ionic选择多张图片上传的示例代码
2017/10/10 Javascript
vue 简单自动补全的输入框的示例
2018/03/12 Javascript
vue mint-ui tabbar变组件使用
2018/05/04 Javascript
Angular 利用路由跳转到指定页面的指定位置方法
2018/08/31 Javascript
详解小程序循环require之坑
2019/03/08 Javascript
JS用最简单的方法实现四舍五入
2019/08/27 Javascript
Vue路由的模块自动化与统一加载实现
2020/06/05 Javascript
python简易远程控制单线程版
2018/06/20 Python
python 列表降维的实例讲解
2018/06/28 Python
Python版中国省市经纬度
2020/02/11 Python
python输出数学符号实例
2020/05/11 Python
Python调用C语言程序方法解析
2020/07/07 Python
CSS3自定义滚动条样式的示例代码
2017/08/21 HTML / CSS
CSS3实现网站商品展示效果图
2020/01/18 HTML / CSS
HTML5的自定义属性data-*详细介绍和JS操作实例
2014/04/10 HTML / CSS
中国综合性网上购物商城:当当(网上卖书起家)
2016/11/16 全球购物
Linux机考试题
2015/10/16 面试题
职高毕业生自我鉴定
2013/10/21 职场文书
小学生成长感言
2014/01/30 职场文书
民主评议党员工作总结
2014/10/20 职场文书
2014年党支部书记工作总结
2014/12/04 职场文书
爱国影片观后感
2015/06/18 职场文书
Python序列化与反序列化相关知识总结
2021/06/08 Python
java中用float时,数字后面加f,这样是为什么你知道吗
2021/09/04 Java/Android