前言
开发时需要用到一个顶部滑动导航的组件,所以在github上找到了一个6.9k star的react-native-scrollable-tab-view,试过效果不错,niceeeee!
根据教程导入使用都没问题,但是一打开我的app,rn就显示
ViewPropTypes will be removed from React Native. Migrate to ViewPropTypes exported from 'deprecated-react-native-prop-types
虽然不是致命错误,但是每次打开和更新metro都要把它取消掉真的很烦,所以,开干!
一、问题分析
根据系统提示,看起来是版遗留问题么,所以谷歌一波,是rn本身的问题,很多旧版本的库如果使用了ViewPropTypes现在都会有这个警告,因此借鉴其他库的解决方法,参考文章1
我找到了最终解决方案。
二、解决方案
第 1 步:npm install deprecated-react-native-prop-types或yarn add deprecated-react-native-prop-types.
步骤2:打开目录中所有有引入ViewPropTypes的文件,那么在react-native-scrollable-tab-view中就是这几个:
步骤3:删除所有从react-native导入的ViewPropTypes,改为从deprecated-react-native-prop-types中导入。另外,由于源语句定义了ViewPropTypes的同时还定义了ReactNative的变量,所以要把这变量补回去,不然会出错。下面是改后的图和原图
步骤 4:将"postinstall": "patch-package"
添加到package.json中的scripts。
"scripts": {
"start": "expo start",
"postinstall": "patch-package"
},
步骤 5:运行npx patch-package deprecated-react-native-prop-types
。
第 6 步:运行npm run postinstall
. (别人的方法有这步骤,但是我做完步骤五就没有警告了,再运行第六部提示出错,不过最后刷新是没问题的)