详解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 相关文章推荐
用jscript启动sqlserver
Jun 21 Javascript
JQUERY CHECKBOX全选,取消全选,反选方法三
Aug 30 Javascript
js 替换功能函数,用正则表达式解决,js的全部替换
Dec 08 Javascript
如何确保JavaScript的执行顺序 之jQuery.html深度分析
Mar 03 Javascript
js判断一个字符串是否包含一个子串的方法
Jan 26 Javascript
Javascript毫秒数用法实例
Feb 05 Javascript
jQuery实现感应鼠标动画效果自动伸长的输入框实例
Feb 24 Javascript
Html中 IFrame的用法及注意点
Dec 22 Javascript
vue forEach循环数组拿到自己想要的数据方法
Sep 21 Javascript
Node.js系列之连接DB的方法(3)
Aug 30 Javascript
在react中使用vue的状态管理的方法示例
May 02 Javascript
js实现mp3录音通过websocket实时传送+简易波形图效果
Jun 12 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
晶体管单管来复再生式收音机
2021/03/02 无线电
通过对php一些服务器端特性的配置加强php的安全
2006/10/09 PHP
使用PHPExcel操作Excel用法实例分析
2015/03/26 PHP
PHP编译安装时常见错误解决办法
2015/05/28 PHP
javascript xml为数据源的下拉框控件
2009/07/07 Javascript
JavaScript中使用正则匹配多条,且获取每条中的分组数据
2010/11/30 Javascript
禁止ajax缓存获取程序最新数据的方法
2013/11/19 Javascript
js中document.write使用过程中的一点疑问解答
2014/03/20 Javascript
全面解析Bootstrap弹窗的实现方法
2015/12/01 Javascript
jQuery之简单的表单验证实例
2016/07/07 Javascript
require简单实现单页应用程序(SPA)
2016/07/12 Javascript
JavaScript之filter_动力节点Java学院整理
2017/06/28 Javascript
bootstrap是什么_动力节点Java学院整理
2017/07/14 Javascript
详解JS取出两个数组中的不同或相同元素
2019/03/20 Javascript
详解vue 路由跳转四种方式 (带参数)
2019/04/28 Javascript
浅谈vue使用axios的回调函数中this不指向vue实例,为undefined
2020/09/21 Javascript
[01:36]DOTA2完美大师赛趣味视频之与队友相处的十万个技巧
2017/11/19 DOTA
python爬虫入门教程之糗百图片爬虫代码分享
2014/09/02 Python
Python文件与文件夹常见基本操作总结
2016/09/19 Python
python 将md5转为16字节的方法
2018/05/29 Python
Python字典创建 遍历 添加等实用基础操作技巧
2018/09/13 Python
解决python2 绘图title,xlabel,ylabel出现中文乱码的问题
2019/01/29 Python
python3.7 使用pymssql往sqlserver插入数据的方法
2019/07/08 Python
python网络编程之多线程同时接受和发送
2019/09/03 Python
python 获取当前目录下的文件目录和文件名实例代码详解
2020/03/10 Python
python exit出错原因整理
2020/08/31 Python
HTML5 Video/Audio播放本地文件示例介绍
2013/11/18 HTML / CSS
无畏的旅行:Intrepid Travel
2017/12/20 全球购物
公共汽车、火车和飞机票的通用在线预订和销售平台:INFOBUS
2019/11/30 全球购物
西班牙在线光学:Visual-Click
2020/06/22 全球购物
extern在函数声明中是什么意思
2014/01/19 面试题
用友笔试题目
2016/10/25 面试题
户外亲子活动总结
2015/05/08 职场文书
python pygame入门教程
2021/06/01 Python
Pandas数据结构之Series的使用
2022/03/31 Python
深入理解mysql事务隔离级别和存储引擎
2022/04/12 MySQL