使用React 16 App中的React 14组件

时间:2018-01-17 13:22:27

标签: javascript reactjs react-16

我们使用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个支持,但我们真的想避免它。

0 个答案:

没有答案