React.js - default prop не используется с `null` передается

У меня есть реквизиты по умолчанию в моем компоненте React:

PropertyTitleLabel.defaultProps = {
    bedrooms: 1,
    propertyType: 'flat'
};
PropertyTitleLabel.propTypes = {
    bedrooms: PropTypes.number,
    propertyType: PropTypes.string
};

Но когда я прохожу от null до bedrooms как:

const bedrooms = null; // in real world API returns `null`
<Component bedrooms={bedrooms} />

Он не заменяется по умолчанию prop:( Любые идеи?

Ответ 1

Вы можете изменить значение null на undefined, чтобы использовать значение по умолчанию.

<Component bedrooms={bedrooms || undefined} />

Или используйте этот mixin: https://github.com/jarsbe/null-default-props

Ответ 2

Я думаю, что существует различие между null и undefined, которое делается при работе с defaultProps. Значение null может быть предназначено для поведения и, следовательно, не заменяется вашими значениями по умолчанию, а undefined не будет и будет заменено.

Как указано в документах

[...] используется для обеспечения того, что this.props.value будет иметь значение, если он не был указан родительским компонентом.

Вот связанная проблема.