[英]React.js - default prop is not used with `null` is passed
我的 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} />
它沒有被默認道具取代:(有什么想法嗎?
您可以將null
值更改為undefined
以使用默認值。
<Component bedrooms={bedrooms || undefined} />
我認為在處理defaultProps
時, null
和undefined
之間是有區別的。 null
值可能是預期的行為,因此不會被您的默認值替換,而undefined
不會並且將被替換。
如文檔中所述
[...] 用於確保 this.props.value 在父組件未指定的情況下將具有值。
這是一個相關的問題。
undefined
= 沒有。null
= 暗示“無”的東西。 undefined
在現實中是不存在的。 null
但是確實存在。 這意味着undefined
不會傳遞 prop 值,因為你不能傳遞不存在的東西。 由於null
不是什么都沒有,而是只是暗示什么都沒有,所以它傳遞了 props。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.