React defaultProps null vs undefined
Posted
技术标签:
【中文标题】React defaultProps null vs undefined【英文标题】: 【发布时间】:2020-06-22 03:57:51 【问题描述】:假设我们有一个名为 Button 的组件和一个名为 classN 的属性,这不是必需的。
Button.propTypes =
classN: PropTypes.string,
;
将该属性的 defaultProps 定义为 null 或 undefined 有什么区别?
Button.defaultProps =
classN: undefined,
VS
Button.defaultProps =
classN: null,
【问题讨论】:
你试过了吗? 除了一个为空,另一个为未定义外,没有区别。 这取决于您想如何使用该道具。 是的,我已经尝试过了,但没有发现差异,但是这两个选项可能会导致应用程序的行为不同。 这是添加到您帖子中的有用信息。它表明您已尝试自己找到答案,并阐明了您到底在寻找什么。 【参考方案1】:@fjplaurr 我需要回答,因为我没有资格发表评论。 默认情况下,属性是未定义的。所以这一切都取决于你如何在代码中使用属性。 如果您检查一个属性是否未定义,那么您将进行不同的检查,如果是空检查,则会说 if property!=null。 我相信 Should I set default react properties to null 可能有助于在两者之间选择最好的。
【讨论】:
【参考方案2】:将null
值设置为 props 可以是有意的,并用于指示生命周期逻辑。添加到@hemant-kumar 的评论中,默认道具默认为undefined
,可用于指示尚未设置但将要设置的值。
见this question
【讨论】:
以上是关于React defaultProps null vs undefined的主要内容,如果未能解决你的问题,请参考以下文章
React - 解构时的 defaultProps 与 ES6 默认参数(性能问题)
Typescript React 空函数作为 defaultProps
可以将 propTypes 和 defaultProps 作为静态 props 放在 React 类中吗?
React - 即使定义了 defaultProps,TypeScript 也会将 undefined 添加到 prop