React Native 0.69.1安装指定库出现'deprecated-react-native-prop-types'错误求助
解决React Native 0.69.1中'deprecated-react-native-prop-types'错误
问题背景
在React Native 0.69.1版本中,安装react-native-snap-carousel或react-native-fast-image时会触发以下错误:
引用模块"node_modules/react-native-snap-carousel/src/index.js"时抛出异常:Invariant Violation: ViewPropTypes已从React Native中移除,请迁移至'deprecated-react-native-prop-types'导出的ViewPropTypes。
原因是React Native 0.69+版本已移除内置的ViewPropTypes,而这两个第三方库仍在使用旧的引用方式。
解决方案
方法一:使用patch-package持久化修复库的引用
这是最稳妥的方案,能避免每次npm install后重复修改依赖文件:
- 安装
patch-package:npm install patch-package --save-dev # yarn用户执行以下命令 yarn add patch-package postinstall-postinstall --dev - 安装依赖包:
npm install deprecated-react-native-prop-types --save - 修改库的引用语句:
- 打开
node_modules/react-native-snap-carousel/src/index.js,将import { ViewPropTypes } from 'react-native';替换为import { ViewPropTypes } from 'deprecated-react-native-prop-types'; - 对
react-native-fast-image执行同样操作:找到它引用ViewPropTypes的文件,替换上述导入语句。
- 打开
- 生成补丁文件:
npx patch-package react-native-snap-carousel npx patch-package react-native-fast-image - 在
package.json中添加自动应用补丁的脚本:"scripts": { "postinstall": "patch-package" }
方法二:全局临时兼容(不推荐,仅应急使用)
在项目根目录的index.js中添加全局挂载代码,让旧库能找到ViewPropTypes:
import { ViewPropTypes } from 'deprecated-react-native-prop-types'; import ReactNative from 'react-native'; ReactNative.ViewPropTypes = ViewPropTypes;
此方法可能引发未知兼容性问题,仅建议临时过渡使用。
内容的提问来源于stack exchange,提问作者deepanshu katyal
相关产品推荐
相关产品推荐

