如何更新这个已弃用的React.PropTypes代码

时间:2017-06-28 21:14:12

标签: javascript reactjs react-proptypes

以下是我得到的当前错误:

enter image description here

这是我当前的PropTypes代码,我需要检查进入的Array中的对象是否具有以下属性(id和name)。

React.PropTypes.arrayOf(
    React.PropTypes.shape({
        id: React.PropTypes.string.isRequired,
        name: React.PropTypes.string.isRequired
    })
).isRequired

在这里阅读https://github.com/tomchentw/react-google-maps/issues/463显然不推荐使用React.PropTypes。

但是,如何使用这个逻辑检查通过Props进入的Array中的Object内部类型:

AssetsTable.propTypes = {
    asset: PropTypes.object.isRequired,
    price_usd: PropTypes.string.isRequired
};

基本上来自阵列的数据包含如下对象:enter image description here

3 个答案:

答案 0 :(得分:1)

Prop-types支持形状,就像React.PropTypes

一样

来自React Docs

  // An object taking on a particular shape
  optionalObjectWithShape: PropTypes.shape({
    color: PropTypes.string,
    fontSize: PropTypes.number
  }),

答案 1 :(得分:1)

使用React.PropTypes时,首先需要安装prop-types软件包(通过npm或您最喜欢的软件包管理器)。然后使用import PropTypes from 'prop-types';导入它,然后像PropTypes一样使用React.PropTypes

答案 2 :(得分:0)

使用与{React}相同的prop-types库。 e.g。

import PropTypes from 'prop-type';

class MyComponent extends React.Component {
   static propTypes = {
      someValue: PropTypes.number
   }
}