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