詳解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;

以上就是本文的所有內容,但願對你們的學習有所幫助

相關文章
相關標籤/搜索