Javascript 反应:为什么getDefaultProps是一个方法,而propTypes是一个普通对象?
由于Javascript 反应:为什么getDefaultProps是一个方法,而propTypes是一个普通对象?,javascript,reactjs,Javascript,Reactjs,由于getDefaultProps不引用组件实例,因此您似乎不需要函数(例如,不需要重新绑定this),一个普通的旧对象也可以正常工作。在那里使用函数有什么好处,为什么不适用于propTypes?propTypes propTypes是一个对象,因为它用于声明prop是一个特定的JS原语。例如: React.createClass({ propTypes: { optionalArray: React.PropTypes.array, optionalBool: Rea
getDefaultProps
不引用组件实例,因此您似乎不需要函数(例如,不需要重新绑定this
),一个普通的旧对象也可以正常工作。在那里使用函数有什么好处,为什么不适用于propTypes
?propTypespropTypes
是一个对象,因为它用于声明prop是一个特定的JS原语。例如:
React.createClass({
propTypes: {
optionalArray: React.PropTypes.array,
optionalBool: React.PropTypes.bool,
optionalFunc: React.PropTypes.func
}
});
这有助于确保正确使用组件。当为道具提供无效值时,JavaScript控制台中将显示警告
getDefaultProps()getDefaultProps
用于定义props
的默认值,并在创建类时调用一次并缓存
为什么我相信它的优点,或者说原因是,
getDefaultProps()
是一个函数,它可以被缓存,以避免下次使用组件时重新计算。Ah,函数缓存完全有意义。谢谢getDefaultProps的行为类似于静态单例方法,每次调用它时都返回一个可共享对象。静态,因为它在组件实例被创建之前被调用,Stutelon使它返回一个可共享的对象。请考虑使用EXMAXEXECUDEXTUPSP= {} < /Cord>语法代替EXECUTE > GETDebug ToPsP/<代码>方法。