为什么这个对象没有通过我自己的 PropTypes 验证
Why is this object failing my own PropTypes validation
我有一个 PropTypes 验证如下:
static propTypes = {
tileHost: PropTypes.string,
center: PropTypes.arrayOf(PropTypes.number),
zoom: PropTypes.number,
layers: PropTypes.objectOf(PropTypes.exact({
visible: PropTypes.boolean,
selected: PropTypes.objectOf(PropTypes.arrayOf(PropTypes.node)),
onClick: PropTypes.func,
activeType: PropTypes.string
})),
focusBbox: PropTypes.arrayOf(PropTypes.number)
}
我是这样称呼它的:
<Map
height='350px'
tileHost='mapbox'
layers={{
parcels: {
visible: true,
selected: {
'APN': [apn]
}
},
}}
focusBbox={bbox}
/>
在我看来是正确的,但抛出了这个错误:
Warning: Failed prop type: Invalid prop `layers.parcels` key `visible` supplied to `Map`.
Bad object: {
"visible": true,
"selected": {
"APN": [
"11141327"
]
}
}
Valid keys: [
"visible",
"selected",
"onClick",
"activeType"
]
这是道具类型 (15.7.2) 中的错误还是我做错了什么?
visible
属性 应该是 PropTypes.bool
:
Map.propTypes = {
layers: PropTypes.objectOf(
PropTypes.exact({
// Not PropTypes.boolean
visible: PropTypes.bool
})
)
};
我有一个 PropTypes 验证如下:
static propTypes = {
tileHost: PropTypes.string,
center: PropTypes.arrayOf(PropTypes.number),
zoom: PropTypes.number,
layers: PropTypes.objectOf(PropTypes.exact({
visible: PropTypes.boolean,
selected: PropTypes.objectOf(PropTypes.arrayOf(PropTypes.node)),
onClick: PropTypes.func,
activeType: PropTypes.string
})),
focusBbox: PropTypes.arrayOf(PropTypes.number)
}
我是这样称呼它的:
<Map
height='350px'
tileHost='mapbox'
layers={{
parcels: {
visible: true,
selected: {
'APN': [apn]
}
},
}}
focusBbox={bbox}
/>
在我看来是正确的,但抛出了这个错误:
Warning: Failed prop type: Invalid prop `layers.parcels` key `visible` supplied to `Map`.
Bad object: {
"visible": true,
"selected": {
"APN": [
"11141327"
]
}
}
Valid keys: [
"visible",
"selected",
"onClick",
"activeType"
]
这是道具类型 (15.7.2) 中的错误还是我做错了什么?
visible
属性 应该是 PropTypes.bool
:
Map.propTypes = {
layers: PropTypes.objectOf(
PropTypes.exact({
// Not PropTypes.boolean
visible: PropTypes.bool
})
)
};