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

reactjs React.js

LGil泡芙

2020-03-11

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

<Field data={data} />

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

propTypes: {
  data: React.PropTypes.object
}

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

props[propName]: React.PropTypes.number.required // etc...

第571篇《如何在ReactJS中验证嵌套对象的PropTypes?》来自Winter(https://github.com/aiyld/aiyld.github.io)的站点

2个回答
Tom十三 2020.03.11
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
    },
})
小胖Itachi 2020.03.11

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

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

问题类别

JavaScript Ckeditor Python Webpack TypeScript Vue.js React.js ExpressJS KoaJS CSS Node.js HTML Django 单元测试 PHP Asp.net jQuery Bootstrap IOS Android