详解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 弹出层组件(升级版)
May 12 Javascript
js检验密码强度(低中高)附图
Jun 05 Javascript
jquery单选框radio绑定click事件实现方法
Jan 14 Javascript
简单介绍JavaScript中字符串创建的基本方法
Jul 07 Javascript
JavaScript编写连连看小游戏
Jul 07 Javascript
JavaScript中var关键字的使用详解
Aug 14 Javascript
jquery实现(textarea)placeholder自动换行
Dec 22 Javascript
JS与jQuery实现子窗口获取父窗口元素值的方法
Apr 17 jQuery
Three.js利用Detector.js插件如何实现兼容性检测详解
Sep 26 Javascript
基于vue2.x的电商图片放大镜插件的使用
Jan 22 Javascript
vue检测对象和数组的变化分析
Jun 30 Javascript
微信小程序文字显示换行问题
Jul 28 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文件操作实例代码
2012/05/10 PHP
PHP页面静态化――纯静态与伪静态用法详解
2020/06/05 PHP
基于jquery的Repeater实现代码
2010/07/17 Javascript
浅析javascript操作 cookie对象
2014/12/26 Javascript
教你如何使用firebug调试功能了解javascript闭包和this
2015/03/04 Javascript
详解JavaScript中setSeconds()方法的使用
2015/06/11 Javascript
javascript框架设计之种子模块
2015/06/23 Javascript
CKEditor无法验证的解决方案(js验证+jQuery Validate验证)
2016/05/09 Javascript
Angularjs实现分页和分页算法的示例代码
2016/12/23 Javascript
详解vue.js的devtools安装
2017/05/26 Javascript
vue1.0和vue2.0的watch监听事件写法详解
2018/09/11 Javascript
React中阻止事件冒泡的问题详析
2019/04/12 Javascript
vue-cli随机生成port源码的方法
2019/09/02 Javascript
如何利用nodejs实现命令行游戏
2020/11/24 NodeJs
[01:01:35]Optic vs paiN 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
python批量添加zabbix Screens的两个脚本分享
2017/01/16 Python
Python实现文件信息进行合并实例代码
2018/01/17 Python
Python机器学习算法之k均值聚类(k-means)
2018/02/23 Python
解决python大批量读写.doc文件的问题
2018/05/08 Python
Python实现通过继承覆盖方法示例
2018/07/02 Python
python实现C4.5决策树算法
2018/08/29 Python
Python列表倒序输出及其效率详解
2020/03/04 Python
PIL.Image.open和cv2.imread的比较与相互转换的方法
2020/06/03 Python
pycharm 添加解释器的方法步骤
2020/08/31 Python
css3过渡_动力节点Java学院整理
2017/07/11 HTML / CSS
出门问问全球官方商城:Tichome音箱和TicWatch智能手表
2017/12/02 全球购物
《诚实与信任》教学反思
2014/04/10 职场文书
幼儿园中班下学期评语
2014/04/18 职场文书
班级学习计划书
2014/04/27 职场文书
党的群众路线领导班子整改方案
2014/09/27 职场文书
社区党员干部承诺书
2015/05/04 职场文书
导游词之寿县报恩寺
2020/01/19 职场文书
MySQL优化之如何写出高质量sql语句
2021/05/17 MySQL
Nginx反向代理至go-fastdfs案例讲解
2021/08/02 Servers
CSS中float高度塌陷问题的四种解决方案
2022/04/18 HTML / CSS
create-react-app开发常用配置教程
2022/06/25 Javascript