React Native踩坑日记,不断更新中...

1.将方法写在了组件外面,相当于java方法写在类外面

2.按钮点击事件忘记使用箭头函数,导致方法找不到,正确做法如下,记得要写this,不写也找不到方法
<Button onPress={()=>{this._onclick()}} title='点击我'></Button>

3.声明的方法不需要加function,可能受了js的影响

4.声明的组件找不到,忘记导包了

5.以下代码第二个输出为空,这是因为_textChange2取值时候这个this.setState其实还没执行完。

console.log('zyl _textChange:'+text);
this.setState(previousState=>{
    return {  inputTet:text};
});
console.log('zyl _textChange2:'+this.state.inputTet);

可以换种写法,把这句console.log('zyl _textChange2:'+this.state.inputTet);加到一个按钮点击事件里面。这时候取出来是有值的。我想这应该类似android里面的主线程跑的比子线程要快吧。

6.官网说的TextInput去除底部边框或者去除底部线,underlineColorAndroid="transparent"来去掉底边框

但是使用的时候要加上大括号,如: underlineColorAndroid={"transpar7.ent"}

7 当我要给一个控件加个外边框的时候,用borderWitdh 是ok的,但如果我想通过borderLeft 等方式加四个方向的线是不行的。

8.TextInput 加了  value={'呵呵'} 属性之后就没法输入了,永远是这个value的值,这不是坑吗?我觉得value应该是默认的文本才对,怎么不能删呢?

9.WebStorm中unresolved function or method require()问题

解决:如果显示enable就点一下,然后就变成下面的Disable就ok了

10.写代码时候出现黄色警告,例如:

var Dimensions = require('Dimensions');

之前后面的'Dimensions'一直黄色警告,虽然不影响运行。但有强迫症看着特别难受,最后的解决方法是按下alt+enter,然后选择

install Dimensions

11.去掉系统组件的黄色警告,例如

看着也是非常难受,虽然不影响运行。解决方法:

首先,点击WebStorm下面的灯泡


去掉下面的俩勾

12.设置TextInput文本居右显示无效,看看是不是有把textAlign写在style里面,如果写在外面是错的,由于习惯性认为是TextInput的属性,所以容易写到外面去,正确写法如下:

<TextInput
    defaultValue={'哈哈'}
    style={{
        flex:2,
        textAlign: 'right'
    }}
>

13.运行报错:undefined is not an object (evaluating CameraManager.Aspect

解决:

Application 里面有行代码被人注释掉了!!!

new RCTCameraPackage(),//二维码扫描

14.Cant find variable List,这个报错说明没导入组件,本来很好找,但我一直在我写那个List组件页面找,一直找不到,浪费时间,但其实是在其他页面引用这个List组件。但没有导入这个组件的路径导致

15.声明这个数组一直报错,后面发现是自己粗心。仔细看,require右边的括号写错位置,不应该放在最后面,手误。

16.TyepeError:Requested keys of a value that is not an object

报上面的错其实是我引用有问题,我代码是这样的

注意看这行,其实通过this是访问不到listData对象的。删除即可。

17.又一大坑。想用Image里面嵌套控件,提示我不能这样做,要用 ImageBackground,用了它之后,我也导包了,一直提示我找不到控件。Cant find variable,重新load代码好几次,都不行。最后解决方法是重启启动服务,npm start 

18.关于模拟器,这其实不算RN的坑,属于自己的知识盲区吧。一开始用的是android studio 自带的模拟器,由于RN需要摇一摇或者点击菜单唤出 控制台 才可以去realod代码,但我建的自带模拟器没有看到这两个功能,实际上摇一摇确实没有,但菜单键还是有的,可以点一下更多看下面这里,有菜单键唤起的快捷键。我的是ctrl+M

19.关于实现RN弹窗效果的,本来自己画个弹窗并不困难。但麻烦的是没有背景变暗的效果,例如实现下面的效果,

可以通过motal来做,实际上是个第三方库。不会使用这个的可以直接搜索motal,查看相关文章去实现,还是比较简单的。

https://github.com/maxs15/react-native-modalbox

 

20.黄色警告

之前的写法(没写uri的原因):

<Image source={require(iconBaseState)} style={{width:24,height: 24}}/>

修改后的写法:

<Image source={{uri:require(iconBaseState)}} style={{width:24,height: 24}}/>

21 。使用Motal时候出现,其实就按它说的,添加个方法就好了。

<Modal animationType={'none'}
       transparent={true}
       visible={this.state.modalVisible}
       onShow={() => {}}
       onRequestClose={() => {}}             //这行是我添加的
      >

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值