0 搭建环境
安装原生Android环境,官方文档 + 博客
下载React-Native
npm install -g react-native-cli
# 进入项目文件夹的父目录下打开cmd,输入以下命令
react-native init myProjec
- 打开安卓模拟器的开发者选项
1 开发工具
2 创建项目
2.1 New Project
- 注意使用电脑上已经安装的react-native包,例如:
- C:\Program Files\nodejs\node_global\node_modules\react-native-cli
2.2 设置快捷启动
2.3 设置Debugger
2.4 启动代码补全
2.5 启动模板
2.6 WebStorm常用快捷键
2.7 关闭ESlint检查
3 编码问题汇总
3.1 样式规范编写
3.2 开源复用组件
4 常见用法
4.1统一获取表单输入框值
saveInputData = (dataType) => {
return (event) => {
this.setState({
[dataType]: event,
});
};
};
4.2 圆角按钮属性
borderRadius
4.3 动态修改组件样式
state = {
buttonColor: Color.font.alleviate,
};
<Button
buttonStyle={{ ...styles.button, backgroundColor: this.state.buttonColor }}
/>
4.4 TouchableOpacity取消点击后的透明度变化
<CheckBox
center
containerStyle={styles.checkBox}
activeOpacity={1}
title="请阅读同意"
textStyle={styles.tipsFont}
iconType="material-icons"
checkedIcon="check-circle"
checkedColor={Color.font.alleviate}
uncheckedIcon="radio-button-unchecked"
onPress={this.checkAgreement}
checked={this.state.agreementChecked}
/>
4.5 alignSelf属性值
值 |
描述 |
auto |
默认值。元素继承了它的父容器的 align-items 属性。如果没有父容器则为 “stretch”。 |
stretch |
元素被拉伸以适应容器。 |
center |
元素位于容器的中心。 |
flex-start |
元素位于容器的开头。 |
flex-end |
元素位于容器的结尾。 |
baseline |
元素位于容器的基线上。 |
initial |
设置该属性为它的默认值。请参阅 initial。 |
inherit |
从父元素继承该属性。请参阅 inherit。 |
4.6 控制Flex子元素在主轴上的比例
flexGrow
4.7 文本自动换行
<Text style={styles.infoFont} selectable={true}
textBreakStrategy="balanced"></Text>
4.8 原生组件官方文档
4.9 Navigation使用
4.10 组件自动换行
flexWrap:"wrap",
4.11 FlatList用法
4.12 导航栏使用
4.13 TabNative 5.0
4.14 Android项目gradle包下载目录
- 示例:C:\Users\用户.gradle\caches\modules-2\files-2.1\com.alexvasilkov\foldable-layout\1.0.1\59a9dd35f8d31de01991ee56b741e9e992914895\foldable-layout-1.0.1-sources.jar
4.15 报错:app:mergeDexDebug FAILED解决方法:
- 在android/app/build.gradle文件中添加如下代码:
dependencies {
implementation 'com.android.support:multidex:1.0.3' //enter the latest version,
}
android {
defaultConfig {
multiDexEnabled true
}
}
4.16 WebStorm中js文件被识别为txt文件
4.17 Style 详细说明
4.18 查看项目无法启动的错误报告
// 控制台下
android>gradlew assembleDebug --info
4.19 无法将类 JMessageReactPackage中的构造器 JMessageReactPackage应用到给定类型
- 使用“探花APP” React-Native教程的plugin.md文档
module.exports = {
dependencies: {
'jmessage-react-plugin': {
platforms: {
android: {
packageInstance: 'new JMessageReactPackage()'
}
}
},
}
};
4.20 报错INSTALL_FAILED_INSUFFICIENT_STORAGE
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="xxx" android:installLocation="preferExternal" //增加这行代码! android:versionCode="1" android:versionName="1.0" >
4.21 样式问题Debug
- 设置border或者backgroundColor
- 设置flex:1可以使得左右各占一半。