本文是针对rn初级开发者的,如果是大神,遇到这个问题已经解决的人,有不同解决方案可以在评论区发表一件,谢谢!
按照官方文档的介绍安装react-navigtioni:
npm install react-navigation/yarn add react-navigation,继续安装附加依赖npm install react-native-reanimated react-native-gesture-handler react-native-screens react-native-safe-area-context @react-native-community/masked-view, 然后react link;
第三步 苹果端 -> cd ios; pod install; cd ..
安卓端 -> 安装yarn add react-native-screens, 在build.gradle文件的dependencies增加: implementation 'androidx.appcompat:appcompat:1.1.0-rc01'
implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0-alpha02',等等
后续步骤就不写了,做完官方网站的介绍,感觉一点毛病都没有,官方还能骗我们?然而无论你在那一端运行,手机都给你报错null is not an object ( evaluating 'RNGestureHandlerModule.Direction')。于是我们在百度上各种找。
苹果端的解决方法是: 当你安装上面的依赖和pod install的时候,不要打开电脑的xcode。不然就会报上面的错误。
安卓端的解决办法,有人说react-native run-android,有人说是' yarn add jetifier, 然后npx jetify‘。可能他们的解决办法是有效的,但本人试过对于我的项目来说是无效的,于是在百度,谷歌,github issue都搜索了一遍页没能解决。倒腾了一天,思来想去,又回去看文档了。我仔细比对了一下,后来发现我‘打开’的方式不太对,哈哈,下面看图

错误的做法是:在整个项目的build.gradle下增加 implementation两项,而不是在build.gradle(module: react-native-gesture-handler)这个文件上面增加implementation,最终导致错误

我想经过上面的描述大家已经猜到了解决办法,安卓解决方法是
在build.gradle(module: react-native-gesture-handler)这个文件上面增加implementation

好了,我的经验分享就到这,大家如果有什么好方法也可以联系我,或者在评论区提出