【巨能坑】react-native的大坑,不定期更新

 

  • 注:写页面时,当子组件是<Text>时一定不要固定父组件的宽高。

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------

今天使用react-native-easy-toast框架的时候,在跟标签下面加上了

若用户设置了系统字体大小,适配就会出现问题。(例如:子组件的文字显示不完全或者父组件过大)

应当使父组件自动包裹子组件<Text>的宽和高.

<Toast ref={toast => {
    this.toast = toast
}}/>/*必须写在页面的最底部*/

于是乎出现了下面的错误。

直接把后面跟的注释去掉就行了。

---------------------------------------------------------------------------------------------------------------------------------

2,千万要注意,不要被console.log所蒙蔽,有可能它给你打印出来的null是个字符串哦。所以在判断一个变量是否为空时,千万不要使用if(变量名)...的格式。一定要写一个工具类。

 

---------------------------------------------------------------------------------------------------------------------------------

 

这个错误暂时真的没有找到如何修改native 版本的地方,只能修改js的版本了。可以使用

npm install --save react-native@版本号

来修改js的版本。究竟为什么会出现这种情况,也不太清楚。求知道的大佬们告知。

更新:这个错误是在Android到处jsBundle时的错误,导出时的版本和当前版本不一致导致的,可以重新手动导出bundle文件即可。

--------------------------------------------------------------------------------------------------------------------------------

3,在使用Text Input时,Android平台手动取消焦点时键盘不会消失。

 

//用于Android隐藏软键盘
const dismissKeyboard = require('dismissKeyboard');
//隐藏函数:dismissKeyboard();

---------------------------------------------------------------------------------------------------------------------------------

4,Could not expand ZIP 错误

一般是没有清楚缓存导致不能解压,可以执行命令:cd android && gradlew clean && cd .. && react-native run-android

---------------------------------------------------------------------------------------------------------------------------------

5,手动导出bundle文件时异常

这是因为在react native在0.49之后将index合成了一个文件‘index.js’,而网上的命令大部分都是之前的,所以出现这个问题,执行:react-native bundle --entry-file index.js --bundle-output ./android/app/src/main/assets/index.android.bundle --platform android --assets-dest ./android/app/src/main/res/ --dev false 即可正常导出bundle。

注:如果不能成功,先看看自己的版本是多少。

---------------------------------------------------------------------------------------------------------------------------------

6,Android打包后运行闪退的问题:

打包后运行直接闪退,打开log发现错误信息如上图,这个时候打开android/app/src/main/assets/index.android.bundle,搜索u.View.proptypes.style,将搜索到的地方替换为u.ViewPropTypes.style即可。

至于原因,目前还不清楚,猜测是Facebook团队把View.proptypes.style废弃的原因。

---------------------------------------------------------------------------------------------------------------------------------

7,TextInput设置secureTextEntry属性时,却发现没有作用。

问题出在TextInput的keyboardType属性,当它的属性为某些值时,例如(email-address)是没有办法将输入框中的内容隐藏的。

---------------------------------------------------------------------------------------------------------------------------------

8,开发过程中无法打开debug模式(开发者菜单)的问题。

在Android目录中的Mainaplication 的getUseDeveloperSupport回调中,返回true即可。

---------------------------------------------------------------------------------------------------------------------------------

9,手动生成jsbundle包。

执行命令:react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res

---------------------------------------------------------------------------------------------------------------------------------

10,设置CardStackStyleInterpolator报错问题。(v:0.55.4)

现在网上的路径大多都是CardStack目录下的文件,但通常都找不到该文件。其实目录已经不在那里了。以下才是正确的目录:

import CardStackStyleInterpolator from 'react-navigation/src/views/StackView/StackViewStyleInterpolator';
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值