- 注:写页面时,当子组件是<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';