重装了系统以后什么也没了,决定从零开始写这样一个持续的文集。
1.多张图片遍历
页面需要用到4张图片放在列表的item里面,所以第一反应就是放到数组里面然后让列表给我遍历
this.imageArray = ['../imgs/me/ic_wechat.png',
'../imgs/me/ic_timeline.png',
'../imgs/me/ic_facebook.png',
'../imgs/me/ic_twitter.png';
这样的话是拿不到图片的,因为图片需要我们带入require才行而不是require里面加以上路径.
this.imageArray = [require('../imgs/me/ic_wechat.png'),
require('../imgs/me/ic_timeline.png'),
require('../imgs/me/ic_facebook.png'),
require('../imgs/me/ic_twitter.png')];
这样就好了.
2.获取ScrollableTabView点击的tab名字
<ScrollableTabView
locked={true}
scrollWithoutAnimation
tabBarPosition={"top"}
renderTabBar={() => <HomeSegument/>}
style={{flex: 1,backgroundColor: '#f8f8f8'}}
onChangeTab={(obj) => {
console.log(obj.ref.key.substring(2));
}}>
obj.ref.key是全名,然后根据需要去截取.
3.屏蔽所有警告
console.disableYellowBox = true;
- …this.props
封装组件的时候用到它 将外界所有内容先传到内部,
{…this.props,…this.props} 合并两个为一个对象
5.使用ScrollableTabView去完成两个tab加在一个页面的时候
renderTabBar 切记要延迟加载后面那个,0s也行.
6.textInput中onSubmitEditing与onchangeValue冲突
会导致onSubmitEditing无效.
7.通过自带的Linking实现打电话
Linking.openURL('tel://' + merchant.telephone).catch((e) => {
WLAlert.error('', e.message);
});
8.onlayout里面写滑动事件
可以用这个来实现进入页面直接到底部,我在语音和IM用到.
9.两个滚动类控件
滚动类控件使用前要固定宽高,不要嵌套两个滚动类控件,高度算不出来
10.新版本的类型检测独立出来了
import PropTypes from 'prop-types'
11.安卓返回按钮
backAndroidHandler={() => {
console.log(Actions.state);
if (Actions.state.index === 0) {
return false;
} else {
Actions.pop();
return true;
}
12.当前页面的静态方法里不能调用实例方法
这个OC学过的都知道咯强调一下
13.rnrf里面好用的方法
static onEnter() 进入时调用
static onExit() 离开时调用
14.封装原生的时候出现通知问题
移除通知的时候用removeAllLinster
15.推送问题
封装startObserver的时候,名字不要和系统的重复了,之前直接重写了囧
16.async await
将链式编程的then去掉 直接返回最后一步结果。
then的下一个then的回调参数是前一个then的返回值
17.promise
多重回调使用,链式编程, 网络请求的封装可以用它.
18.flatList 无数据默认图
写在head里面最好不过了
19.做单点登录验证
不要传空字段进去,验证的时候会通过将其转化为字符串进行校验,
空字符串会转化成为undefined或者none导致校验失败.
20.修改后端接口地址无效
Index 修改端口 前面打空格
21.优化FlatList
disableVirtualization只有在debug模式下才打开( true ),
这是个boolean值,用来优化内存和显示用的,
也就是在render window外面完全卸载react实例的
22.Realm 稳定版本
2.02 去掉^(^表示最新版本)
23.swipBanner :
点在下面的问题,在最外层view上给定宽高后给image宽高(本来是给轮播图和image宽高)
24.link
只是给项目导入project,安卓中和原生相关的三方都需要创建一个对应的实例.
25.JSON.parse和JSON.stringify
parse用于从一个字符串中解析出json对象,如
var str = '{"name":"huangxiaojian","age":"23"}'
结果:
JSON.parse(str)
Object
age: "23"
name: "huangxiaojian"
__proto__: Object
stringify()用于从一个对象解析出字符串,如
var a = {a:1,b:2}
结果:
JSON.stringify(a)
"{"a":1,"b":2}"
转载或者抄袭需本人同意= 。=
网友评论