React有很多使用PropTypes来检查道具价值的方法。我通常使用的是React.PropTypes.shape({...})
。但是,最近我遇到一种情况,即我有一个对象,该对象内部将具有动态键/值。我知道每个键都应该是一个字符串(采用已知格式),每个值都应该是一个int。即使使用自定义道具验证功能,它仍然假设您知道道具的钥匙。如何使用PropTypes检查对象/形状的键和值是否正确?
...
someArray: React.PropTypes.arrayOf(React.PropTypes.shape({
// How to specify a dynamic string key? Keys are a date/datetime string
<dynamicStringKey>: React.PropTypes.number
}))
...
再说一遍:我至少要检查每个键的值是一个数字。理想情况下,我还希望能够检查密钥本身是否为格式正确的字符串。
要仅验证值,可以使用
React.PropTypes.objectOf
。