8. 遇到不可抗力的自然灾害
时间:2022-06-09
本文章向大家介绍8. 遇到不可抗力的自然灾害,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
如下图,不解释
自然灾害
遂怒改用GitHub API,一系列改动如下:
- 换名字改用RNGitHub(心好累)
- 升级
react-native
到最新版本(这世界变化真快) - 新版本
ActivityIndicator
兼容Android
,遂弃用react-native-spinkit
,重写Loading
组件
改名#####
之前提到过尽量不要改名,涉及到的改动比较大,会遇到各种不知名错误,趁着本次改动详细记录一下:
- 最靠谱的做法是修改
package.json
文件中的name
,然后react-native upgrade
,根据需要覆盖各种配置文件 - 其中有一个属性不会被修改,需要将
AndroidManifest.xml
中的package
属性修改成对应的包名比如com.rngithub
,包名一般是项目名称小写,这也是为什么不要给项目取诸如RN-GitHub
短杠连接字符这样的名字的原因 - 修改
/index.android.js
主启动文件主视图名字AppRegistry.registerComponent('RNGitHub', () => App);
顺利的话到此结束,如果已有rnpm link
的组件需要重新link
,第一次react-native run-android
可能出错是因为以前link
的组件和新生成的有冲突,重新运行一遍即可,如果报java
编译类错误,尝试cd android && ./gradlew clean
修复,其他问题未遇到,在此不做说明,自行google。
升级react-native
到0.31.0
#####
react-native
毕竟新生,迭代速度那叫一个快,提醒使用的童鞋对于每一个release都要重视,至少要看一下release note,我是从0.27.2
升级的,跨度比较大,遇到的问题也很多,在此记录以免掉坑。
- 首先一个大的改动在
29
版本,分离了启动程序,从以前的MainActivity.java
变成现在的MainActivity.java
和MainApplication.java
,猜测目的是将主启动程序与启动视图分离,将抽象类接口化,更好的解耦(我没分析过源码,只限个人猜测),官方说明在这里,我是一个搬运工,大致翻译如下
- 将
MainActivity.java
和MainApplication.java
修改如连接所示样式,MainActivity,MainApplication如果你已经运行react-native upgrade
则无需改动 - 添加
name
属性,在AndroidManifest.xml
文件中添加如下
<application
android:name=".MainApplication"
...
>
- 如果出现诸如如下错误:
Warning: You are manually calling a React.PropTypes validation function for the fontSize
prop on StyleSheet welcome
. This is deprecated and will not work in the next major version. You may be seeing this warning due to a third-party PropTypes library. See[https://facebook.github.io/react/warnings/dont-call-proptypes.html](https://facebook.github.io/react/warnings/dont-call-proptypes.html) for details
需要同时升级react
,配套版本是15.2.1
,npm --save remove react && npm --save install react@15.2.1
弃用react-native-spinkit
并重写Loading
#####
并不是说这个组件不好,只是一个简单的loading
我觉得没必要使用怎么好的组件而已:
修改app/components/loading.js
:
'use strict';
import React, { Component } from 'react';
import {
StyleSheet,
View,
ActivityIndicator,
} from 'react-native';
class Loading extends Component {
render() {
return (
<View style={styles.container}>
<ActivityIndicator size='large' color='#30A9DE'/>
</View>
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
alignItems: 'center',
justifyContent: 'center',
}
});
export default Loading;
下篇文章将具体修改界面使用GitHub API,目前还没有想好如何设计,敬请期待。(.)
最新代码地址,之前代码已tag
,可以查看之前的RELEASE。
- google protobuf学习笔记:编译安装、序列化、反序列化
- 自己在Qt上做的辣鸡计算器
- 【Qt】]Qt5中文乱码
- 防止连接Mysql超时,JDBC探活配置
- 剑指offer——面试题10输入一个十进制整数,统计其中二进制1的个数
- 剑指offer——面试题9计算斐波纳切第n个数
- 剑指 offer——面试题8求旋转数组的最小值
- MYSQL INNODB表压缩
- 剑指offer——年龄排序问题
- Mysql Group Replication介绍
- 剑指offer——快速排序
- 架构高性能网站秘笈(四)——反向代理缓存
- 架构高性能网站秘笈(一)——了解衡量网站性能的指标
- MYSQL5.6&5.7编译安装
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- TextView中URL等指定特殊字符串与点击事件解析
- Android开发实现仿京东商品搜索选项卡弹窗功能
- Android开发中button按钮的使用及动态添加组件方法示例
- Kotlin开发的一些实用小技巧总结
- Android使用URLConnection提交请求的实现
- android原生JSON解析实例
- iOS新闻类App内容页技术探索
- Android仿iphone自定义滚动选择器
- Android仿iPhone日期时间选择器详解
- Android 仿余额宝数字跳动动画效果完整代码
- Android中判断listview是否滑动到顶部和底部的实现方法
- Android开发实现的简单媒体播放器功能示例
- Android中的颜色表示的详解
- android使用SoundPool播放音效的方法
- android中Context深入详解