由于 getDefaultProps
不引用组件实例,因此您似乎不需要函数(因为不需要重新绑定(bind) this
,例如) 而一个普通的旧对象就可以正常工作。在那里使用函数有什么好处,为什么同样不适用于 propTypes
?
最佳答案
Prop 类型
propTypes
是一个对象,因为它用于声明一个 prop 是一个特定的 JS 原语。例如:
React.createClass({
propTypes: {
optionalArray: React.PropTypes.array,
optionalBool: React.PropTypes.bool,
optionalFunc: React.PropTypes.func
}
});
这有助于确保正确使用组件。当为 Prop 提供无效值时,将在 JavaScript 控制台中显示警告。
getDefaultProps()
getDefaultProps
用于定义props
的默认值,在创建类时调用一次并缓存。
为什么
我认为 getDefaultProps()
的优势,或者更确切地说,是一个函数,因此它可以被缓存以避免下次使用该组件时重新计算。
关于javascript - react : why is getDefaultProps a method while propTypes is a plain object?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28701750/