javascript - Prop 类型 : array of one of the class instance

标签 javascript reactjs react-proptypes

我正在尝试为我的属性“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/

相关文章:

javascript - p5.j​​s 如何改变文字粗细(变小)?

javascript - 如何在reactjs中将表单单选按钮重置为未选中?

javascript - React PropTypes - 以数字为键的形状

javascript - 将多个条件语句压缩到样式组件中的一个开关中?

reactjs - 如何在MapBox上的特定坐标处显示文本?

javascript - IntelliSense 不适用于我自己的 React 组件库

reactjs - React 组合组件属性类型

javascript - 定义将在调用它的函数之后运行的回调的正确方法是什么?

javascript - 传单:将弹出窗口调整为图片大小

javascript - 是否可以使用 nw.js 构建控制台应用程序?