【React Native】日常踩坑记录_以后将持续更新

  作为一名有理想、有抱负的一代iOS程序员,本着“我头发够多,还能学”的原则,我选择了追随那些大佬的脚步,于2018年开始了React Native。

  第一步:找文档、准备安装开发环境;

  第二步:一步步跟着大佬的脚步,去输入命令安装(错了,是复制、粘贴);

  第三步:哇!🤩好顺利,竟然完成了(不过这是第几次才成功的,我忘记了,安装的乐趣,你们不安装,你不会懂)。

  满怀信心的打开了,这一刻好有成就感,感觉自己距离大前端又近了一步,少年,你可以的,继续加油!

  

  react native开发第一步,就是踩坑,一步一坑。记录一下:

 

1、日常踩坑记录  

  Q:Invariant Violation:Text strings must be rendered within a <Text> component

  A:在代码中无语中多输入了符号,注意:此类问题,在提示中一般给出了第N行错误的提示。

 

  Q:使用 PropTypes 进行类型检 || 控制台报:TypeError: Cannot read property 'string' of undefined

  A:注意: 从 React v15.5 开始 ,React.PropTypes 助手函数已被弃用,我们建议使用 prop-types 库 来定义contextTypes。

 

  import React, {Component,PropTypes} from 'react’;//已经不能使用了,
  所以在使用前:
  
  
属性的类型检查
static propTypes = {
    name: PropTypes.string,
    age: PropTypes.number,
    sex: PropTypes.string.isRequired,
  }

 

  

  Q:Uncaught Error: Invariant Violation: Element type is invalid: expected a string (for built-in components) or a class/function but got: object

 

  A:导入组件的方式由require换成import..from..

 

  如:import Main from './Component/Main/Main.js';
 
  

2、代码段

  1、 监听网状连接状态的变化
componentDidMount () {
    NetInfo.addEventListener('change', this.handleConnectivityChange);
  }

  componentWillUnmount() {
    NetInfo.removeEventListener('change', this.handleConnectivityChange);
  }

  handleConnectivityChange() {
    NetInfo.isConnected.fetch().then(netConnected => {
      if (netConnected) {
        ToastAndroid.show('网络已连接', ToastAndroid.SHORT, ToastAndroid.BOTTOM)
      } else {
        ToastAndroid.show('请检查网络连接', ToastAndroid.SHORT, ToastAndroid.BOTTOM)
      }
    })
  }

  2、createStackNavigator, createBottomTabNavigator 路由嵌套 StackNavigator的跳转问题

class MainView extends Component {
  static navigationOptions = {
    header: null
  };

  render () {
    let { isMask } = this.props.global
    const { cartCount } = this.props
    return (
      
        
      
    )
  }
}
MainView.router = AppTabNavigator.router

  3、tabBarOnPress 拦截tab导航的tab点击事件

navigationOptions: ({navigation, screenProps}) => ({
      title: '我的',
      tabBarIcon: ({focused}) => (
        
      ),
      tabBarOnPress: () => {
        if (!screenProps.netConnected) {
          navigation.navigate('Home')
        }
      }
    })

  4、解决锁定屏幕方向 还有键盘顶起tab导航等问题

添加一行:android:screenOrientation="portrait"
设置为portrait是锁定竖向,landscape是锁定横向

 

 

 

 

全部评论

相关推荐

老粉都知道小猪猪我很久没更新了,因为秋招非常非常不顺利,emo了三个月了,接下来说一下我的情况吧本人是双非本&nbsp;专业是完全不着计算机边的非科班,比较有优势的是有两段大厂实习,美团和字节。秋招面了50+场泡池子泡死的:滴滴&nbsp;快手&nbsp;去哪儿&nbsp;小鹏汽车&nbsp;不知名的一两个小厂其中字节13场&nbsp;两次3面挂&nbsp;两次2面挂&nbsp;一次一面挂其中有2场面试题没写出来,其他的都是全a,但该挂还是挂,第三次三面才面进去字节,秋招加暑期总共面了22次字节,在字节的面评可以出成书了快手面了8场,2次实习的,通过了但没去,一次2面挂&nbsp;最后一次到录用评估&nbsp;至今无消息滴滴三面完&nbsp;没几天挂了&nbsp;所有技术面找不出2个问题是我回答不上来的,三面还来说我去过字节,应该不会考虑滴滴吧,直接给我干傻了去哪儿一天速通&nbsp;至今无消息小鹏汽车hr&nbsp;至今无消息美团2面挂&nbsp;然后不捞我了,三个志愿全部结束,估计被卡学历了虾皮二面挂&nbsp;这个是我菜,面试官太牛逼了拼多多二面挂&nbsp;3道题也全写了&nbsp;也没问题是回答不出来的&nbsp;泡一周后挂腾讯面了5次&nbsp;一次2面挂&nbsp;三次一面挂,我宣布腾讯是世界上最难进的互联网公司然后还有一些零零散散的中小厂,但是数量比较少,约面大多数都是大厂。整体的战况非常惨烈,面试机会少,就算面过了也需要和各路神仙横向对比,很多次我都是那个被比下去的人,不过这也正常,毕竟谁会放着一个985的硕士不招,反而去招一个双非读化学的小子感觉现在互联网对学历的要求越来越高了,不仅仅要985还要硕士了,双非几乎没啥生存空间了,我感觉未来几年双非想要进大厂开发的难度应该直线上升了,唯一的打法还是从大二刷实习,然后苟个转正,不然要是去秋招大概率是炮灰。而且就我面字节这么多次,已经开始问很多ai的东西了,你一破本科生要是没实习没科研懂什么ai啊,纯纯白给了
不知名牛友_:爸爸
秋招你被哪家公司挂了?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务