react-native Navigator 页面跳转

本文介绍如何解决React Native升级后Navigator组件的兼容性问题。由于React Native 0.44版本后Navigator被移除,需单独安装react-native-deprecated-custom-components。文章详细解释了因React.PropTypes移除导致的编译错误,并提供了解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

      最近一直被这个坑,坑疯了。

      现在react-native升级到0.50  ,但是 0.44之后,Navigator被从react native的核心组件库中剥离到了一个名为react-native-deprecated-custom-components的单独模块中。如果你需要继续使用Navigator,则需要先yarn add react-native-deprecated-custom-components安装,然后从这个模块中import,即import { Navigator } from 'react-native-deprecated-custom-components'.

       编译项目之后会出现下面的错误:

我们找到对应错误的地方:


 
 

而通过上面这个包里的源码我们可以发现,它使用了 React.PropTypes,问题正是出在这里。

其实从 React 16.0.0 开始,PropTypes 就已经不再由 React 提供了,而 fb 专门提供了 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 了。

而此时我发现 react-native-deprecated-custom-components 这个包还没有更新,为了解决这个问题,我在 package.json 文件里将 React 的版本还原到了 16.0.0-alpha.12,然后执行

npm install

进行重装。完成后编译运行,项目成功启动。

下面贴出代码

App.js


       Main.js


    Second.js



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值