2017-08-07 106 views
0

我有一个数组对象被传递作为道具的阵列看起来像:PropTypes验证阵列

[ 
    { 
    "title": "eat food" 
    }, 
    { 
    "title": "Drinks", 
    "sub_items": [ 
     { 
     "title": "Beer", 
     "isDrinking": true 
     } 
    ] 
    }, 
    { 
    "title": "eat Pizza" 
    }, 
    { 
    "title": "Other Drinks", 
    "sub_items": [ 
     { 
     "title": "Soda", 
     "isDrinking": false 
     }, 
     { 
     "title": "Soda", 
     "isDrinking": false 
     } 
    ] 
    } 
] 

我想要做的就是添加了propTypes验证,像

标题:PropTypes.string .isRequired

分项目:PropTypes.array

分项目:道具阵列内部验证诸如标题螫和isDrinking布尔值。

注意如何在一个数组上实现这一点。 (PS。我reactjs知识很有限,所以原谅我,如果我问一个明显愚蠢的问题)

+1

[React proptype array with shape]可能的重复(https://stackoverflow.com/questions/32325912/react-proptype-array-with-shape) –

回答

1

你可以写:

PropTypes.arrayOf(PropTypes.shape({ 
    title: PropTypes.string.isRequired, 
    sub_items: PropTypes.arrayOf(PropTypes.shape({ 
    title: PropTypes.string.isRequired, 
    isDrinking: PropTypes.bool.isRequired 
    }) 
})).isRequired 

通知sub_items怎么不是必需的,但如果它被包含在一个的对象,它必须是定义了titleisDrinking的对象数组。