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

How to update this deprecated React.PropTypes code

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

这是我当前的 PropTypes 代码,我需要检查传入的数组中的对象是否具有以下属性(idname)。

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 传入的数组中的对象内部的类型:

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

基本上,传入的数组具有如下所示的对象:

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

来自React Docs

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

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

一样使用 PropTypes

像使用 React 一样使用 prop-types 库。 例如

import PropTypes from 'prop-types';

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