【问题标题】:React: Set default proptype for arrayReact:为数组设置默认属性类型
【发布时间】:2017-01-06 16:38:05
【问题描述】:

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

MyComponent.defaultProps = {
    multiple: false
}

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

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

这不起作用。也许它只是一个语法错误。我该怎么做?

【问题讨论】:

    标签: reactjs react-proptypes


    【解决方案1】:

    仅当没有为该特定属性传入任何道具时才使用默认道具。如果您传入 myArray 的道具,但该对象没有 label 的键/值对,那么您将有两个选择:

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

    因为它是一个道具,所以你不想通过像 myArray.label = 'default value' in theImageMultiCheck` 组件这样的操作来改变你的 myArray 对象,因此我建议对变量使用三元赋值操作。

    【讨论】:

    • 谢谢@finalfreq,这解释得很好。你说得对,我不想改变标签的实际状态。因此,在我的 ImageMultiCheck 中,我将放置一个默认字符串,以防标签道具丢失。
    猜你喜欢
    • 1970-01-01
    • 2017-06-20
    • 1970-01-01
    • 2021-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-04
    • 1970-01-01
    相关资源
    最近更新 更多