0
我有一个自定义的Todo propType:阵营嵌套自定义propType
export const TodoPropType = PropTypes.shape({
title: PropTypes.string.isRequired,
description: PropTypes.string
})
我有我的待办事项的收集这样
{
"Kfd455gdf4gdf" : { // key as uid
title: "blabla",
description: "blobloblo"
},
"Kf65sd465fsd" : {
title: "blabla2",
description: "blobloblo2"
}
}
我愿做一个自定义propType验证收集和重复使用我的待办事项propType
export const TodosPropType = function(props, propName, componentName) {
const todos = props[propName]
// ... valide that an object..
Object.keys(todos).map((qid) => {
// valide that the qid is a string
// reuse my TodoPropType
})
}
但它不赞成手动调用PropType。我得到了一个警告:
警告:您手动呼吁
todos
道具上TodoComponement
一个React.PropTypes验证功能。这是弃用的,将不会在生产与下一个主要版本....
你如何处理?
这是我在使用Firebase之前所做的。 他们不使用数组而是使用Object作为uid的键(正如我在帖子中所说的) 我需要的是一个propType,它验证它是一个带有一个或多个TodoPropType值的键字符串的对象。 – Titoine
那么你应该看看'objectOf'这是你正在寻找。它基本上是'arrayOf',但是对于其键应该具有特定值的对象。 – finalfreq