详解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 相关文章推荐
js之WEB开发调试利器:Firebug 下载
Jan 13 Javascript
javascript 常用方法总结
Jun 03 Javascript
幻灯片带网页设计中的20个奇妙应用示例小结
May 27 Javascript
网页右键ie不支持event.preventDefault和event.returnValue (需要加window)
Feb 22 Javascript
node.js使用require()函数加载模块
Nov 26 Javascript
jQuery创建DOM元素实例解析
Jan 19 Javascript
浅谈JavaScript的Polymer框架中的事件绑定
Jul 29 Javascript
jQuery Ajax传值到Servlet出现乱码问题的解决方法
Oct 09 Javascript
Vue常用指令V-model用法
Mar 08 Javascript
详解React之key的使用和实践
Sep 29 Javascript
Node.js操作系统OS模块用法分析
Jan 04 Javascript
vue动态绑定class的几种常用方式小结
May 21 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
一个简单的MySQL数据浏览器
2006/10/09 PHP
使用PHP的日期与时间函数技巧
2008/04/24 PHP
PHP自动选择 连接本地还是远程数据库
2010/12/02 PHP
php 强制下载文件实现代码
2013/10/28 PHP
YII2框架中actions的作用与使用方法示例
2020/03/13 PHP
JS中Iframe之间传值及子页面与父页面应用
2013/03/11 Javascript
javascript 得到文件后缀名的思路及实现
2020/05/09 Javascript
jquery无刷新验证邮箱地址实现实例
2014/02/19 Javascript
jQuery实现仿美橙互联两级导航菜单的方法
2015/03/09 Javascript
node-webkit打包成exe文件被360误报木马的解决方法
2015/03/11 Javascript
js获取微信版本号的方法
2015/05/12 Javascript
JS处理json日期格式化问题
2015/10/01 Javascript
JavaScript基础知识点归纳(推荐)
2016/07/09 Javascript
BootStrap 附加导航组件
2016/07/22 Javascript
JS实现页面中所有img对象添加onclick事件及新窗口查看图片的方法
2016/12/27 Javascript
微信小程序 sha1 实现密码加密实例详解
2017/07/06 Javascript
JS库之wow.js使用方法
2017/09/14 Javascript
3种vue路由传参的基本模式
2018/02/22 Javascript
vue ajax 拦截原理与实现方法示例
2019/11/29 Javascript
JavaScript碰撞检测原理及其实现代码
2020/03/12 Javascript
jQuery 动画与停止动画效果实例详解
2020/05/19 jQuery
JavaScript中条件语句的优化技巧总结
2020/12/04 Javascript
python 使用opencv 把视频分割成图片示例
2019/12/12 Python
使用pytorch实现可视化中间层的结果
2019/12/30 Python
Django实现将views.py中的数据传递到前端html页面,并展示
2020/03/16 Python
详解如何在pyqt中通过OpenCV实现对窗口的透视变换
2020/09/20 Python
基于HTML5新特性Mutation Observer实现编辑器的撤销和回退操作
2016/01/11 HTML / CSS
运动会开幕式邀请函
2014/02/03 职场文书
经济管理毕业生求职信
2014/03/15 职场文书
《地震中的父与子》教学反思
2014/04/10 职场文书
集体生日活动方案
2014/08/18 职场文书
我的中国梦演讲稿800字
2014/08/19 职场文书
拾金不昧感谢信
2015/01/21 职场文书
公积金接收函格式
2015/01/30 职场文书
食品安全责任书范本
2015/05/09 职场文书
德劲DE1102数字调谐收音机机评
2022/04/07 无线电