详解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自适应IFrame高度(支持嵌套 兼容IE,ff,safafi,chrome)
Mar 28 Javascript
js中复制行和删除行的操作实例
Jun 25 Javascript
Javascript中call的两种用法实例
Dec 13 Javascript
jquery根据锚点offset值实现动画切换
Sep 11 Javascript
浏览器缩放检测的js代码
Sep 28 Javascript
js实现瀑布流的三种方式比较
Jun 28 Javascript
JS从数组中随机取出几个数组元素的方法
Aug 02 Javascript
超实用的javascript时间处理总结
Aug 16 Javascript
jquery radio的取值_radio的选中_radio的重置方法
Sep 20 Javascript
vue-cli脚手架搭建的项目去除eslint验证的方法
Sep 29 Javascript
原生javascript实现类似vue的数据绑定功能示例【观察者模式】
Feb 24 Javascript
Vue watch响应数据实现方法解析
Jul 10 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 mongodb操作类 带几个简单的例子
2016/08/25 PHP
PHP+redis实现的限制抢购防止商品超发功能详解
2019/09/19 PHP
JavaScript 笔记二 Array和Date对象方法
2010/05/22 Javascript
jquery.validate使用攻略 第一部
2010/07/01 Javascript
javascript 禁用IE工具栏,导航栏等等实现代码
2013/04/01 Javascript
jquery选择器、属性设置用法经验总结
2013/09/08 Javascript
JS使用for循环遍历Table的所有单元格内容
2014/08/21 Javascript
jQuery将多条数据插入模态框的示例代码
2014/09/25 Javascript
JavaScript控制listbox列表框的项目上下移动的方法
2015/03/18 Javascript
JQuery判断radio(单选框)是否选中和获取选中值方法总结
2015/04/15 Javascript
js右下角弹出提示框示例代码
2016/01/12 Javascript
javascript瀑布流式图片懒加载实例
2020/06/28 Javascript
JavaScript数据绑定实现一个简单的 MVVM 库
2016/04/08 Javascript
js 获取范围内的随机数实例代码
2016/08/02 Javascript
Parcel.js + Vue 2.x 极速零配置打包体验教程
2017/12/24 Javascript
在微信小程序里使用watch和computed的方法
2018/08/02 Javascript
jQuery 实现批量提交表格多行数据的方法
2018/08/09 jQuery
jQuery事件blur()方法的使用实例讲解
2019/03/30 jQuery
layui的select联动实现代码
2019/09/28 Javascript
JS数组splice操作实例分析
2019/10/12 Javascript
VUEX采坑之路之获取不到$store的解决方法
2019/11/08 Javascript
js实现div色块碰撞
2020/01/16 Javascript
[03:10]超级美酒第四天 fy拉比克秀 大合集
2018/06/05 DOTA
解决Python出现_warn_unsafe_extraction问题的方法
2016/03/24 Python
Python判断两个对象相等的原理
2017/12/12 Python
怎么使用pipenv管理你的python项目
2018/03/12 Python
python实现对求解最长回文子串的动态规划算法
2018/06/02 Python
使用Python如何测试InnoDB与MyISAM的读写性能
2018/09/18 Python
Python3如何对urllib和urllib2进行重构
2019/11/25 Python
python 实现PIL模块在图片画线写字
2020/05/16 Python
selenium+python实现基本自动化测试的示例代码
2021/01/27 Python
香港百佳网上超级市场:PARKNSHOP.com
2020/06/10 全球购物
室内设计专业个人的自我评价
2013/12/18 职场文书
opencv深入浅出了解机器学习和深度学习
2022/03/17 Python
Spring boot实现上传文件到本地服务器
2022/08/14 Java/Android