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
| * Sample React Native App * https://github.com/facebook/react-native * @flow */
import React, { Component } from 'react'; import { AppRegistry, StyleSheet, Text, View } from 'react-native';
export default class Child extends Component { constructor(props) { super(props); this.state = { content:this.props.content }; } componentWillMount(){ console.log('child====componentWillMount') }
componentDidMount(){ console.log('child====componentDidMount') } componentWillReceiveProps(nextProps){ console.log(this.props.content+'===='+'componentWillReceiveProps'+'====='+nextProps.content) this.setState({content:'componentWillReceiveProps'});
}
shouldComponentUpdate(nextProps,nextState){ console.log('shouldComponentUpdate') return true }
componentWillUpdate(nextProps,nextState){ console.log('componentWillUpdate') }
render() { console.log('child render') return ( <View style={styles.container}> <Text style={styles.welcome}> {this.props.content} </Text> <Text style={styles.instructions}> To get started, edit index.android.js </Text> </View> ); }
componentDidUpdate(prevProps,prevState){ console.log(prevProps.content+'===='+'componentDidUpdate'+'====='+this.props.content) } }
const styles = StyleSheet.create({ container: { justifyContent: 'center', alignItems: 'center', backgroundColor: '#F5FCFF', }, welcome: { fontSize: 20, textAlign: 'center', margin: 10, }, instructions: { textAlign: 'center', color: '#333333', marginBottom: 5, }, });
|