View 是一个用于布局的容器组件,style属性用于设置View的样式,支持FlexBox布局。
在web环境,相当于div的角色。
例子:
import React from 'react'; import { View, Text, StyleSheet } from 'react-native'; const Example = () => { return ( <View style={styles.container}> <Text>你好</Text> </View> ); }; const styles = StyleSheet.create({ container: { flex: 1, justifyContent: 'center', alignItems: 'center', }, }); export default Example;
用于显示文本信息的组件。
例子:
import React from 'react'; import { Text } from 'react-native'; const Example = () => { return <Text style={styles.headerOrgText}>你好</Text> } const styles = StyleSheet.create({ headerOrgText: { fontSize: 16, color: '#FFFFFF', marginRight: 5, }, }); export default Example;
用于显示不同格式的图片,包括网络图片、静态资源等。
例子:
import React from 'react'; import { Image } from 'react-native'; import ArrowRightIcon from 'src/assets/images/arrow_icon.png' const Example = () => { return <Image style={styles.arrowImage} source={ArrowRightIcon} /> }; const styles = StyleSheet.create({ arrowImage: { marginRight: 15, height: 11, width: 7, }, }); export default Example;
允许用户输入文本数据的组件。
常用的属性:
常用的事件:
例子:
import React, { useState } from 'react'; import { TextInput } from 'react-native'; const Example = () => { const [value, setValue] = useState(''); return ( <TextInput style={[styles.plainTextContent, { fontSize: 16 }]} placeholder="请填写内容,500字以内" placeholderTextColor="#999999" value={visitContent} multiline maxLength={500} onChangeText={text => { console.log(text) }} /> ); }; const styles = StyleSheet.create({ plainTextContent: { flex: 1, color: '#999999', marginLeft: 30, paddingTop: 0, paddingBottom: 0, textAlignVertical: 'center', }, }); export default Example;
一个切换组件,可用于显示开/关状态。
该组件只有两个值true和false,true表示开状态,false表示关状态(默认值)。
如下图所示:
常用的属性:
常用的事件:
例子:
import React, { useState } from 'react'; import { View, Switch } from 'react-native'; const Example = () => { const [isEnabled, setIsEnabled] = useState(false); const toggleSwitch = () => setIsEnabled(previousState => !previousState); return ( <View> <Switch onValueChange={toggleSwitch} value={isEnabled} /> </View> ); }; export default Example;
提供了一种类似CSS样式表的方式来定义组件的样式。
但是RN中的样式与CSS中是不同的:
background-color
改为backgroundColor
定义好的样式,通常采用对象或者数组的形式引入到组件中:
例子:
import React from 'react'; // 引入 StyleSheet import { View, StyleSheet } from 'react-native'; // 使用组件的style属性,以对象的形式引入样式 const Example = () => <View style={styles.container}></View>; // 通过 create() 方法创建样式表 const styles = StyleSheet.create({ container: { padding: 20, borderRadius: 5, }, }); export default Example;
如果通过数组的形式引入样式,那么数组的后一项样式会覆盖前一项的样式。
<View style={[styles.container, props.style]}></View>