React:为数组设置默认属性类型

React: Set default proptype for array

在 React 中,我可以像这样设置默认的 PropTypes:

MyComponent.defaultProps = {
    multiple: false
}

现在,我的一个道具是关联数组。我想为其中一个键值参数设置默认值,例如:

ImageMultiCheck.defaultProps = {
    multiple: false,
    myArray: {label: 'default Value'}
}

这是行不通的。也许它只是一个语法错误。我该怎么做?

只有在没有为特定 属性 传入道具时才会使用默认道具。如果您传入 myArray 的道具,但对象没有 label 的 key/value 对,那么您将有两个选择:

您可以在父组件中处理这种情况,并检查正在传递的对象上是否存在标签,如果不存在,则添加默认值。否则在你的 ImageMultiCheck 组件中你将不得不做一些 var label = myArray.label ? myArray.label : 'default value'

由于它是一个道具,您不想通过执行 myArray.label = 'default value' in theImageMultiCheck` 组件之类的操作来改变 myArray 对象,因此我建议对变量使用三元赋值操作。