# rn_project
**Repository Path**: null_612_8761/rn_project
## Basic Information
- **Project Name**: rn_project
- **Description**: No description available
- **Primary Language**: JavaScript
- **License**: EPL-1.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 2
- **Created**: 2021-06-21
- **Last Updated**: 2021-06-21
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
## 项目日志
### 项目预览
.assets/image-20210523154327134.png)
### 项目技术选型
1. 发请求 Axios
2. UI框架:React-native-elements
3. 路由系统:React-navigation
4. 轮播图:react-native-swiper
5. 集成图标库
6. 后续补充
* 定位
* 登录
* 无限滚动FlatList
### 安装项目依赖
```js
yarn add @react-native-community/cli react-native-vector-icons react-native-elements react-native-swiper axios @react-navigation/stack @react-navigation/native @react-navigation/drawer @react-navigation/bottom-tabs react-native-reanimated react-native-gesture-handler react-native-screens react-native-safe-area-context @react-native-community/masked-view -S
```
### UI框架
#### 安装
1. ```yarn add react-native-elements -S```
* ```yarn add react-native-safe-area-context -S```
* ```react-native link react-native-safe-area-context```
2. 集成图标库```yarn add react-native-vector-icons -S```
3. link解决依赖问题```npx react-native link react-native-vector-icons```
### 知识点
* react-native-elemetn Avatar :rounded 圆形图标,默认方形
### React-navigation
* 核心思想(没有地址栏,所以没有path)
* Stack 栈
* Screen 屏幕(router-view)
* Drawer 侧边拖动的
* Tab 底部导航栏
* API
* navigation.navigate(name,数据对象)
* navigation.back()
*
* 传递给组件的参数{route,navigation}
* route.params 获取数据
### 图标集(图标选择必备,重要)
* https://oblador.github.io/react-native-vector-icons/
### 坑
组件属性不继承,文本节点必须在Text中
TouchableWithoutFeedback必须一个根节点
Flex布局会继承
const { width, height, scale, fontScale } = Dimensions.get('window');
多属性: transform: [{translateY:20}]
* 如果默认按钮点击不出现水波纹,则有可能发生app假死,重启应用即可
* 无法连接上debugger, 唤出模拟器开发菜单, 【stop debug】
* 确定编写的代码是简单的、正确的,仍然白屏,重启应用app
* display:'flex' // none|flex
* lstat -> 包名/node_module 不重要的操作(文件被程序占用)
### 需求1
* 处理底部Tab的四种图标及文字
* 图标
```js
// AntDesign:home
// MaterialCommunityIcons:panda
// AntDesign:message1
// Fontisto:person
```
* 需要处理的内容:
1. 图标
2. 文字
3. 颜色(选中与不选中)
* 未选中:黑色
* 选中:红色
### 需求1总结
```jsx
import { NavigationContainer } from '@react-navigation/native';
import { createBottomTabNavigator } from '@react-navigation/bottom-tabs';
// 工厂函数创建
let Tab = createBottomTabNavigator();
// 容器组件
{/* router-view*/}
({
// 属性1
tabBarLabel:({focused,color,size})=>{
return
},
// 属性2
}) }
>
```
### 需求2头部
.assets/image-20210606105026964.png)
* 手机端:flex支持都很好
* RN中flex默认 不是 direction:row
#### 改变状态栏颜色
* import { StatusBar } from 'react-native'
.assets/image-20210606105630976.png)
```jsx
import {StatusBar} from 'react-native';
```
### 需求:处理扫一扫等图标
.assets/image-20210606142523393.png)
FontAwesome microphone
Ionicons add
AntDesign scan1
AntDesign qrcode
AntDesign wallet
MaterialIcons pedal-bike
### 轮播图
* yarn add react-native-swiper -S