首先,打开MyProject目录(这个就是我们的项目目录)下的的index.android.js文件,其实这个名字你可以自己定义,不一定非要命名为index.android.js。
下面就让我们来分析一下这个文件的内容结构和一些注意事项。
import React, { Component } from 'react';
import { // 引入React Native组件,当我们需要使用不同的组件来搭建界面的时候,用到的组件就必须在这里引入
AppRegistry,
StyleSheet,
Text,
View
} from 'react-native';
注:更加详细的请看这里:http://www.jianshu.com/p/ae482813b791
在引入React库之后,通过{}将Component类引入,Component是React库中的一个基类,用于被继承和创建React自定义组件。 const styles = StyleSheet.create({ // 调用Create创建变量,通过const声明变量styles并赋值
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
backgroundColor: '#F5FCFF',
},
welcome: {
fontSize: 20,
textAlign: 'center',
margin: 10,
},
instructions: {
textAlign: 'center',
color: '#333333',
marginBottom: 5,
},// 最后这个逗号可以省略
});
然后我们来看一下核心代码:
export default class MyProject extends Component {
render() {
return (
<View style={styles.container}>
<Text style={styles.welcome}>
Welcome to React Native!
</Text>
<Text style={styles.instructions}>
To get started, edit index.android.js
</Text>
<Text style={styles.instructions}>
Double tap R on your keyboard to reload,{'\n'}
Shake or press menu button for dev menu
</Text>
</View>
);
}
}
此方法会被一些用户行为被动唤醒,从而引起界面刷新,比我我们常用到的就是this.setState()方法。
另外需要注意的就是在为组件指定style的时候,React Native组件指定style的写法和Javascript的写法不同:
JavaScript写法: style="opacity:{this.state.opacity};"
ReactNative写法: style={{opacity:this.state.opacity}}
最后,通过AppRegistry将我们的Component注册进MainActivity
AppRegistry.registerComponent('MyProject', () => MyProject);
public class MainActivity extends ReactActivity {
/**
* Returns the name of the main component registered from JavaScript.
* This is used to schedule rendering of the component.
*/
@Override
protected String getMainComponentName() {
return "MyProject"; // 这里只需要返回当前要显示的Component名称,就代表此Activity要显示的就是哪个界面
}
}
资料: