我正在尝试为我的属性“listOfItems”之一提供类型。我希望此属性是“事件”类实例或“ field ”类实例的数组。这是我实现它的方式:
MyClass.propTypes = {
...,
listOfItems: PropTypes.arrayOf(PropTypes.oneOfType([
PropTypes.instanceOf(Event),
PropTypes.instanceOf(Venue)
]))
然而,它似乎并没有起作用。我收到此警告: Prop 类型失败:提供给 MyClass
的值 [object Object]
的 Prop listOfItems[0]
无效,应为 [空,空]。
我不想使用 PropTypes.shape 来定义数组元素,因为我会得到相当多的形状属性列表。这就是我的意思:
MyClass.propTypes = {
...,
listOfItems: PropTypes.arrayOf(PropTypes.shape({
... //list of properties
}))
}
请分享您的想法如何在不编写对象的每个属性的情况下定义具有某些属性的对象数组。
最佳答案
您可以尝试 PropTypes.arrayOf(React.PropTypes.element)
或使用 Shape 是提高可读性的好方法,您可以轻松理解该数组中可以预期的不同类型.
关于javascript - Prop 类型 : array of one of the class instance,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48129234/