由于getDefaultProps
没有引用组件实例,所以看起来你不需要一个函数(例如,因为不需要重新绑定this
)和一个普通的旧对象会工作得很好。在那里使用函数的优点是什么,为什么不同的情况适用于propTypes
?
答案 0 :(得分:1)
<强> propTypes 强>
propTypes
是一个对象,因为它用于声明prop是特定的JS原语。例如:
React.createClass({
propTypes: {
optionalArray: React.PropTypes.array,
optionalBool: React.PropTypes.bool,
optionalFunc: React.PropTypes.func
}
});
这有助于确保正确使用组件。如果为prop提供了无效值,则会在JavaScript控制台中显示警告。
<强> getDefaultProps()强>
getDefaultProps
用于定义props
的默认值,并在创建类时调用一次并缓存。
<强>为什么强>
我相信getDefaultProps()
的优点或原因是一个函数,因此可以缓存它以避免在下次使用该组件时重新计算。