与多级对象反应PropTypes

问题描述 投票:1回答:1

我有一个来自React Router4的深层对象(多级)-'props.match.params.type'。我不确定如何在如此深的对象上进行道具验证。我已经看过.shape(),但是我不确定这是否适合深度。任何建议都很好... [thx

const Register = (props) => {
console.dir(props)
console.log(props.match.params.type)

return (
    <>
        <RegisterMeta />
        <section className="register">
            Register
        </section>
    </>
)
}

Register.propTypes = {
    type: PropTypes.string.isRequired
}

export default React.memo(Register)

thx

reactjs react-proptypes
1个回答
1
投票

您确实可以使用.shape()定义这样的对象:

Component.propTypes = {
  objectType: PropTypes.shape({
    stringType1: PropTypes.string.isRequired,
    stringType2: PropTypes.string.isRequired,
    nestedObjectType: PropTypes.shape({
    //... and so on ...
    }).isRequired
  }).isRequired
}
© www.soinside.com 2019 - 2024. All rights reserved.