详解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中复合属性选择器用法实例
Dec 31 Javascript
jQuery+css实现炫目的动态块漂移效果
Jan 28 Javascript
jquery实现一个简单的表单验证实例
Mar 30 Javascript
Angular.js与Bootstrap相结合实现手风琴菜单代码
Apr 13 Javascript
浏览器兼容的JS写法总结
Apr 27 Javascript
JS使用单链表统计英语单词出现次数
Jun 16 Javascript
js select下拉联动 更具级联性!
Apr 17 Javascript
当vue路由变化时,改变导航栏的样式方法
Aug 22 Javascript
Vue.js中的extend绑定节点并显示的方法
Jun 20 Javascript
vue更改数组中的值实例代码详解
Feb 07 Javascript
Vue脚手架编写试卷页面功能
Mar 17 Javascript
JavaScript find()方法及返回数据实例
Apr 30 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
数据库的日期格式转换
2006/10/09 PHP
php 设计模式之 单例模式
2008/12/19 PHP
在win7中搭建Linux+PHP 开发环境
2014/10/08 PHP
TNC vs IO BO3 第一场2.13
2021/03/10 DOTA
javascript 极速 隐藏/显示万行表格列只需 60毫秒
2009/03/28 Javascript
分享十五个最佳jQuery 幻灯插件和教程
2010/03/27 Javascript
JSON.parse 解析字符串出错的解决方法
2010/07/08 Javascript
JS.GetAllChild(element,deep,condition)使用介绍
2013/09/21 Javascript
javascript学习笔记之10个原生技巧
2014/05/21 Javascript
JavaScript控制table某列不显示的方法
2015/03/16 Javascript
Javascript验证Visa和MasterCard信用卡号的方法
2015/07/27 Javascript
JS获取元素多层嵌套思路详解
2016/05/16 Javascript
jquery使用on绑定a标签无效 只能用live解决
2016/06/02 Javascript
详解JS中的快速排序与冒泡
2017/01/10 Javascript
Vue2.0基于vue-cli+webpack同级组件之间的通信教程(推荐)
2017/09/14 Javascript
动态创建Angular组件实现popup弹窗功能
2017/09/15 Javascript
vue中SPA单页面应用程序详解
2017/11/07 Javascript
详解javascript函数写法大全
2019/03/25 Javascript
vue渲染方式render和template的区别
2020/06/05 Javascript
[30:55]完美世界DOTA2联赛PWL S2 Magma vs LBZS 第二场 11.18
2020/11/18 DOTA
在Python下使用Txt2Html实现网页过滤代理的教程
2015/04/11 Python
解决Pycharm运行时找不到文件的问题
2018/10/29 Python
python函数的作用域及关键字详解
2019/08/20 Python
Python函数默认参数常见问题及解决方案
2020/03/26 Python
Python unittest单元测试框架及断言方法
2020/04/15 Python
荷兰最大的儿童服装店:The Kids Republic
2019/04/13 全球购物
高一家长会邀请函
2014/01/12 职场文书
《颐和园》教学反思
2014/02/26 职场文书
放飞理想演讲稿
2014/09/09 职场文书
群众路线教育查摆剖析材料
2014/10/10 职场文书
2015年党支部公开承诺书
2015/01/22 职场文书
伊索寓言读书笔记
2015/06/30 职场文书
毕业晚宴祝酒词
2015/08/11 职场文书
幼儿园家长心得体会
2016/01/21 职场文书
医学会议开幕词
2016/03/03 职场文书
导游词之金鞭溪风景区
2019/09/12 职场文书