我们使用React组件包,它提供了一些可重用的组件,如Button,Form,TreeView等......这个包是在React 14之上开发的。
我们希望使用React 16开发一个新的应用程序并使用这个组件包,因为它提供了很多开箱即用的外观和感觉。
我们的代码看起来像这样。
import React, {Component} from 'react';
import PropTypes from 'prop-types';
import Button from 'reusable-components/button';
export default class MyComponent extends Component {
render() {
return <Button>{this.props.buttonCaption}</Button>;
}
}
MyComponent.propTypes = {
buttonCaption: PropTypes.string
};
使用此代码,当我打开页面时,我在浏览器控制台中收到错误 TypeError:o.PropTypes is undefined 。我相信&#34; o.PropTypes&#34;是&#34; React.PropTypes&#34;的混淆版本。我得到这个错误,因为他们使用的Button组件的源代码中有某处&#34; React.PropTypes&#34;在React 14之后变得无效。
另一件事是,当我不使用Button而根本不导入它时,一切正常。所以,我很确定这个问题是由Button组件引起的。
我在我的index.js中试过下面的东西,但它没有帮助。
import React from 'react';
import PropTypes from 'prop-types';
React.PropTypes = PropTypes;
有没有办法使用React 16应用程序中的React 14组件?在最坏的情况下,我们将降级到14,因为图书馆还没有16个支持,但我们真的想避免它。