如何在ReactJS中验证嵌套对象的PropTypes?

我正在使用数据对象作为ReactJS中组件的道具。

<Field data={data} />

我知道容易验证PropTypes对象本身:

propTypes: {
  data: React.PropTypes.object
}

但是,如果我想验证其中的值怎么办?即。data.id,data.title?

props[propName]: React.PropTypes.number.required // etc...
Tom十三2020/03/11 10:58:30
user: React.PropTypes.shap({
    age: (props, propName) => {
       if (!props[propName] > 0 && props[propName] > 100) {
          return new Error(`${propName} must be betwen 1 and 99`)
       }
       return null
    },
})
小胖Itachi2020/03/11 10:58:30

要注意的是,嵌套的工作深度超出了一层。这在验证URL参数时对我很有用:

propTypes = {
  match: PropTypes.shape({
    params: PropTypes.shape({
      id: PropTypes.string.isRequired
    })
  })
};