首页 > 解决方案 > React defaultProps 不会填充缺少的对象道具

问题描述

如果我有一个组件,它的 propTypes 如下

import React, { Component } from 'react'
import propTypes from 'prop-types'

class MyComponent extends Component {
    ///
}

MyComponent.propTypes = {
    hidden: propTypes.string.isRequired,
    items: propTypes.object,
    attributes: propTypes.array
}

MyComponent.defaultProps = {
    hidden: false,
    items: {},
    attributes: ['baz', 'qux']
}

如果我的组件是这样调用的

<MyComponent hidden={true} items={[value: 'foo', label: 'bar']} />

我希望它props.attributes填充了defaultProps值,因为它的值没有定义。这是可以(容易)实现的吗?

标签: reactjsreact-proptypes

解决方案


如果您在代码和框上查看此示例

您的代码工作正常!

看看它是不是一个错字或类似的东西。

还要看看你的道具类型。

为什么默认hiddenfalse,而道具类型是string.isRequired

您的控制台上可能有错误,这可能会导致defaultProps.


推荐阅读