Javascript 在v16.x中使用旧版本React中的React组件时出现问题

Javascript 在v16.x中使用旧版本React中的React组件时出现问题,javascript,reactjs,Javascript,Reactjs,我相对来说还没有反应过来,但在过去的一周里,我发现这很有成效。但我遇到了一个难题 我使用createreact-appCLI构建了一个新项目,其中包含了最新的react v16.x和相关软件包。然而,我正在从事的项目还需要一个内部包,供许多其他内部项目使用(因此我不能只是去改变事情)。它是用React v15.x构建的 TypeError: Cannot read property 'oneOf' of undefined 问题是:当我从内部软件包中导入组件时,我遇到了React v16的问题

我相对来说还没有反应过来,但在过去的一周里,我发现这很有成效。但我遇到了一个难题

我使用
createreact-app
CLI构建了一个新项目,其中包含了最新的react v16.x和相关软件包。然而,我正在从事的项目还需要一个内部包,供许多其他内部项目使用(因此我不能只是去改变事情)。它是用React v15.x构建的

TypeError: Cannot read property 'oneOf' of undefined
问题是:当我从内部软件包中导入组件时,我遇到了React v16的问题,它的
React.PropTypes
语法已经弃用(在React v15.x中仍然可用)

上述
未定义的
上下文是旧式v15 React模块中的
React.PropTypes.oneOf(…)

那么,我如何做到两全其美呢?在项目上继续使用v16.x,同时能够利用来自另一个时代(v15.x)的包中的组件


谢谢

下面是根据我留下的评论得出的答案:

在大多数情况下,如果您坚持使用react
15.x
,直到您所依赖的代码也更新为
16.x
,这是一个更安全的选择。只需确保在自己的代码中使用
prop-types
包,这样以后就不必再进行相同的迁移

对于遗留代码,您可以开始安装
prop-types
包,并更改其模式以使用该包。而不是:

import React from 'react';

Something.propTypes = {
  name: React.PropTypes.string
};
使用:


用一个简单的
查找/替换
应该很容易,您的团队和维护人员会感谢您:)

最好坚持使用react
15.x
,直到您的内部项目也升级到16,但您可以将所有遗留代码更改为使用与react now分离的
prop type
包,并为以后轻松升级到16铺平道路。我想你提到了几个合理的选择。如果你想把它写下来作为答案,我会把它标为“已回答”,然后到此为止。谢谢我最终还是将我的项目降级到了最新的v15版本的ReactJS。为了实验/完整性,我还将依赖项项目从React.PropTypes更新为
PropTypes
,如您所述,以实现将来的兼容性。再次感谢!
import PropTypes from 'prop-types';

Something.propTypes = {
  name: PropTypes.string
};