详解js界面跳转与值传递

这篇文章主要为你们详细介绍了js界面跳转与值传递的相关代码,具备必定的参考价值,感兴趣的小伙伴们能够参考一下react

本文实例实现的功能以下:注册页(Register.js),点击注册,跳到注册结果页(RegisterResult.js),并将注册的手机号传递过去,显示xx注册成功。 react-native

 

 

'use strict'函数

import React, { Component } from 'react';学习

import { AppRegistry,Navigator,BackAndroid} from 'react-native';flex

 

var Register = require('./study/Register');ui

let RegisterResult = require('./study/RegisterResult');this

var NaviModule = React.createClass({spa

 

  //告知Navigator模块,咱们但愿在视图切换时,用什么效果.net

  configureScene:function(route){code

    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('NaiModuleListener');

  },

 

  render:function(){

    return (

      <Navigator

        initialRoute = {{name:'register'}}

        configureScene = {this.configureScene}

        renderScene = {this.renderScene} />

      );

  }

 

});

 

AppRegistry.registerComponent('FirstDemo', () => NaviModule);

注册页(Register.js)

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

'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

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

'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;

以上就是本文的所有内容,但愿对你们的学习有所帮助

相关文章
相关标签/搜索