react-native踩坑记录

键盘遮挡

描述

ios靠近手机屏幕下方的输入框得到焦点时,键盘弹出,可是输入框并无往上移。意味着比键盘低的内容都会被遮挡,并且你没办法手动往上移。结果就是在键盘消失以前,你根本看不到本身输入了什么鬼内容。html

解决

使用第三方插件react

npm install react-native-keyboard-aware-scroll-view --save

代替原来的ScrollView组件:android

// import {ScrollView} from 'react-native';
import {KeyboardAwareScrollView} from 'react-native-keyboard-aware-scroll-view';

class App extends Component {
  render() {
    return (
      <KeyboardAwareScrollView>
        <TextInput />
      </KeyboardAwareScrollView>
    );
  }
}

完美解决。更多高级用法请点击这里看github。ios

文字不统一

描述

若是直接使用<Text>原罪</Text>渲染文字,那么android和ios的字体粗细和颜色是不同的。ios下字体较粗较黑,android下字体比较正常。git

解决

本身封装一个无状态组件github

export const TextUI = ({style, children, ...props}) => {
  return (
    <Text
      {...props}
      style={[
        {
          color: '#555555',
          fontSize: 14,
          fontWeight: '100',
        },
        style,
      ]}
    >
      {children}
    </Text>
  );
};

解决这个问题时,有找过文献,有的是扩展Text.prototype.render来添加style,传送门。可是笔者尝试时,android机是直接报错了,ios可用。笔者RN版本:0.55.4npm

ios模拟器动画

描述

刚初始化的iphone模拟器,当你弹一个alert出来,估计是慢的不要不要的。重点弹出来后,点击肯定按钮还不必定会响应(T_T),你要等个几十秒才有反应。很显然,这已经影响到各位看官的开发效率了。react-native

解决

模拟器得到焦点,而后在顶部状态栏中找到 Debug -> showAnimations 的勾选取消掉便可。bash

ios上传到appStore失败

描述

就是上传一直卡在那边不动,最后也不成功app

解决

删除临时目录

mv ~/.itmstransporter/ ~/.old_itmstransporter/

未完待续...

相关文章
相关标签/搜索