详解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 相关文章推荐
收集的网上用的ajax之chat.js文件
Apr 08 Javascript
Jquery插件分享之气泡形提示控件grumble.js
May 20 Javascript
jQuery构造函数init参数分析
May 13 Javascript
基于JavaScript实现动态添加删除表格的行
Feb 01 Javascript
js实现上传图片及时预览
May 07 Javascript
利用jsonp跨域调用百度js实现搜索框智能提示
Aug 24 Javascript
详解使用grunt完成requirejs的合并压缩和js文件的版本控制
Mar 02 Javascript
利用yarn代替npm管理前端项目模块依赖的方法详解
Sep 04 Javascript
angularJs中跳转到指定的锚点实例($anchorScroll)
Aug 31 Javascript
使用nvm和nrm优化node.js工作流的方法
Jan 17 Javascript
Vue请求java服务端并返回数据代码实例
Nov 28 Javascript
原生JavaScript实现换肤
Feb 19 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解析url并得到url中的参数及获取url参数的四种方式
2015/10/26 PHP
php 基础函数
2017/02/10 PHP
javascript 播放器 控制
2007/01/22 Javascript
js跟随滚动条滚动浮动代码
2009/12/31 Javascript
JavaScript动态调整TextArea高度的代码
2010/12/28 Javascript
EXTJS记事本 当CompositeField遇上RowEditor
2011/07/31 Javascript
window.open()详解及浏览器兼容性问题示例探讨
2014/05/29 Javascript
AspNet中使用JQuery boxy插件的确认框
2015/05/20 Javascript
浅谈JavaScript中指针和地址
2015/07/26 Javascript
js传值后台中文出现乱码的解决方法
2016/06/30 Javascript
关于Angularjs中自定义指令一些有价值的细节和技巧小结
2018/04/22 Javascript
vue和webpack项目构建过程常用的npm命令详解
2018/06/15 Javascript
Puppeteer 爬取动态生成的网页实战
2018/11/14 Javascript
JS中的模糊查询功能
2019/12/08 Javascript
JS数组索引检测中的数据类型问题详解
2021/01/11 Javascript
[32:47]完美世界DOTA2联赛 GXR vs IO 第二场 11.07
2020/11/09 DOTA
python logging日志模块以及多进程日志详解
2018/04/18 Python
Python多进程池 multiprocessing Pool用法示例
2018/09/07 Python
python从子线程中获得返回值的方法
2019/01/30 Python
用python打印1~20的整数实例讲解
2019/07/01 Python
Python将列表中的元素转化为数字并排序的示例
2019/12/25 Python
关于pytorch处理类别不平衡的问题
2019/12/31 Python
python中的对数log函数表示及用法
2020/12/09 Python
html5标记文字_动力节点Java学院整理
2017/07/11 HTML / CSS
美国特价机票专家:Airfarewatchdog
2018/01/24 全球购物
买卖正宗运动鞋:GOAT
2019/12/06 全球购物
澳大利亚领先的在线礼品网站:Gifts Australia
2020/08/15 全球购物
财务与信息服务专业推荐信
2013/11/28 职场文书
活动倡议书范文
2014/05/13 职场文书
三八红旗集体先进事迹材料
2014/05/22 职场文书
环保志愿者活动方案
2014/08/14 职场文书
乡镇党委书记个人整改措施
2014/09/15 职场文书
乡镇党委书记第三阶段个人整改措施
2014/09/16 职场文书
党员干部学法用法心得体会
2016/01/21 职场文书
Python Pandas pandas.read_sql_query函数实例用法分析
2021/06/21 Python
原生JavaScript实现简单五子棋游戏
2021/06/28 Javascript