升级ReactNative后PropTypes报错(evaluating '_react2.PropTypes.string')

2017年11月24日 APP 2条评论 阅读1290次

升级ReactNative后PropTypes报错(evaluating '_react2.PropTypes.string')

在ReactNative中,自定义组件用到PropTypes来定义属性的数据类型,
PropTypes的几种用法

  1.  React.PropTypes
  2.  import {PropTypes} from 'react';
  3.  import PropTypes from 'prop-types';


在ReactNative的Framework升级到0.50.3后,发现使用前两种方式已经不可以了。
 React.PropTypes
 import {PropTypes} from 'react';

React.PropTypes.png



这样的后果是出现的红屏错误
undefined is not an object(evaluating '_react2.PropTypes.string')

在依赖的node_modules中,看到了prop-types这个文件,并且使用

import PropTypes from 'prop-types';

确实也解决了上面的红屏错误。

在ReactNative的0.50.3中发现该问题,0.47.3之前版本没有这个问题,其他版本情况未知。



-----------后记

React 16.0.0 开始,PropTypes 就已经不再由 React 提供了,而 facebook 专门提供了 prop-types 模块,需要通过import PropTypes from 'prop-types'来使用 PropTypes。0.48 版本的 RN 使用的是 16.0.0-alpha.12 版本的 React,alpha 版本还没有移除 PropTypes,所以之前项目不会有任何问题。而到了 0.49版本,自动将 React 升级到了 16.0.0-beta.5,这个版本已经移除了 React.PropTypes,所以再编译就会报错了,因为找不到 PropTypes 了。

分享本文至:

WRITTEN BY

avatar
本文标签:ReactNativeProptypes
看了本文是不是觉得很赞,那就赶紧点击下面按钮分享给身边的朋友吧!

2 条评论

  1. avatar william_x

    招到原因了吗,擦,我也碰到一样的问题了

    • @william_x:原因找到了,React 16.0.0 开始,PropTypes 就已经不再由 React 提供了,而 facebook 专门提供了 prop-types 模块,需要通过import PropTypes from 'prop-types'来使用 PropTypes。

欢迎留言




用户登录

sitemap