react 15.5版本的警告问题

一、问题描述

前几天从git上拉下一个项目,cnpm i 安装依赖,项目跑起来后,发现有两个警告。之前这个项目都好好的,怎么突然报错了?

Warning: Accessing PropTypes via the main React package is deprecated. Use the prop-types package from npm instead.

Warning: DropdownMenu: React.createClass is deprecated and will be removed in version 16. Use plain JavaScript classes instead. If you're not yet ready to migrate, create-react-class is available on npm as a drop-in replacement.

二、问题分析

facebook发布了新版本15.5.0,把{ PropTypes }从react中剥离了,需要另外引入"prop-types"。

React.createClass在16.0中将不再支持,采用es6的class方式。

然而,package中指定的react版本是15.3.2,为什么会自动安装15.5.0?

版本号组成:[主要版本号,次要版本号,补丁版本号]

因为依赖包的版本号写的是"react":"^15.3.2",^允许不会改变最左边的不为0的版本号的版本提升,也就是说,^1.0.0允许次要,补丁版本升级,^0.1.0允许补丁版本升级,^0.0.x不允许升级。所以,^15.3.2允许自动升级到15.5.0。

~指示范围,如果指定了次要版本,允许补丁版本升级,如果没有指定次要版本,允许次要版本升级。

~1.2.3 >= 1.2.3 < 1.3.0
~1.2 >= 1.2.0 < 1.3.0

三、解决方案

1、更改安装包

把react和react-dom后面的^改成~,即可。

## 卸载react和react-dom,然后根据依赖安装指定的版本,重新启动项目即可。

npm uninstall react react-dom

cnpm install

2、修改代码

// 废弃写法
import { PropTypes } from 'react';

// 推荐写法
import PropTypes from 'prop-types';

 

转载于:https://www.cnblogs.com/camille666/p/react_version_auto_upgrade_result.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值