Heim > Web-Frontend > js-Tutorial > Detaillierte Erläuterung des js-Schnittstellensprungs und der Wertübertragung

Detaillierte Erläuterung des js-Schnittstellensprungs und der Wertübertragung

高洛峰
Freigeben: 2016-12-05 16:08:36
Original
1148 Leute haben es durchsucht

Die im Beispiel dieses Artikels implementierten Funktionen lauten wie folgt: Klicken Sie auf der Registrierungsseite (Register.js) auf Registrieren, um zur Registrierungsergebnisseite (RegisterResult.js) zu springen, und übergeben Sie dort die registrierte Mobiltelefonnummer , was zeigt, dass xx erfolgreich registriert wurde.

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(&#39;NaviModuleListener&#39;,()=>{
      if (navigator && navigator.getCurrentRoutes().length > 1) {
        navigator.pop();
        return true;
      }
      return false;
    });
  },
 
  //React的生命周期函数---组件被移除时调用
  componentWillUnmount: function(){
    BackAndroid.removeEventListener(&#39;NaviModuleListener&#39;);
  },
 
  render:function(){
    return (
      <Navigator
        initialRoute = {{name:&#39;register&#39;}}
        configureScene = {this.configureScene}
        renderScene = {this.renderScene} />
      );
  }
 
});
 
AppRegistry.registerComponent(&#39;FirstDemo&#39;, () => NaviModule);
Nach dem Login kopieren

Registrierungsseite (Register.js)

&#39;use strict&#39;
import React, { Component } from &#39;react&#39;;
import {
 AppRegistry,
 StyleSheet,
 Text,
 View,
 TextInput
} from &#39;react-native&#39;;
 
let Dimensions = require(&#39;Dimensions&#39;);
let totalWidth = Dimensions.get(&#39;window&#39;).width;
let leftStartPoint = totalWidth * 0.1;
let componetWidth = totalWidth * 0.8;
 
let Register = React.createClass({
 
  getInitialState:function(){
    return {
      inputedNum :&#39;&#39;,
      inputedPW:&#39;&#39;,
  },
 
  updatePW: function(newText){
    this.setState({inputedPW : newText});
  },
 
 render: function() {
  return (
   <View style={styles.container}>
    <TextInput style = {styles.numberInputStyle}
     placeholder = {&#39;请输入手机号&#39;}
     onChangeText = {(aa) => this.setState({inputedNum :aa})}/>
    <Text style={styles.textPromptStyle}>
     您输入的手机号:{this.state.inputedNum}
    </Text>
    <TextInput style={styles.passwordInputStyle}
     placeholder = {&#39;请输入密码&#39;}
     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: &#39;registerResult&#39;,
  });
 }
 
});
 
const styles = StyleSheet.create({
 container: {
  flex: 1,
  flexDirection:&#39;column&#39;,
  justifyContent: &#39;center&#39;,
  backgroundColor: &#39;#F5FCFF&#39;,
 },
 numberInputStyle:{
  top:20,
  left:leftStartPoint,
  width:componetWidth,
  backgroundColor:&#39;gray&#39;,
  fontSize:20
 },
 textPromptStyle:{
  top:30,
  left:leftStartPoint,
  width:componetWidth,
  fontSize:20
 },
 passwordInputStyle:{
  top:50,
  left:leftStartPoint,
  width:componetWidth,
  backgroundColor:&#39;gray&#39;,
  fontSize:20
 },
 bigTextPrompt:{
  top:70,
  left:leftStartPoint,
  width:componetWidth,
  backgroundColor:&#39;gray&#39;,
  color:&#39;white&#39;,
  textAlign:&#39;center&#39;,
  fontSize:60
 }
});
 
module.exports = Register;
Nach dem Login kopieren

RegisterResult.js

&#39;use strict&#39;
import React, { Component } from &#39;react&#39;;
import {
 AppRegistry,
 StyleSheet,
 Text,
 View,
 TextInput
} from &#39;react-native&#39;;
 
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:&#39;column&#39;,
  justifyContent: &#39;center&#39;,
  alignItems:&#39;center&#39;,
  backgroundColor: &#39;#F5FCFF&#39;,
 },
 text:{
  flexWrap:&#39;wrap&#39;,
  backgroundColor:&#39;gray&#39;,
  fontSize:20,
  paddingTop:10,
  paddingBottom:10,
  paddingLeft:25,
  paddingRight:25
 },
});
 
module.exports = RegisterResult;
Nach dem Login kopieren


Verwandte Etiketten:
js
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage