我认为某些props
(例如,主题)在组件中非常通用,因此提取它们的处理(到父类(super class))是有意义的。那么它们的默认值也属于那里。
但是,在 React 中实现这一目标的惯用方法是什么?
class Base extends React.Component {
bgColor() {
switch (this.props.theme) {
case 'Summer': return 'yellow'; break;
case 'Autumn': return 'grey'; break;
case 'Winter': return 'white'; break;
}
}
}
Base.defaultProps = {
theme: 'autumn'
};
<小时/>
class Sky extends Base {
render() {
return <div style={{backgroundColor: this.bgColor()}}>{this.props.clouds}</div>;
}
}
Sky.defaultProps = {
clouds: []
};
...defaultProps
是一个类属性(与实例相反),并且没有继承。
最佳答案
通过分配Sky.defaultProps
,您可以隐藏基本属性。如果你想组合它们,你需要明确地这样做,例如
Sky.defaultProps = Object.assign({}, Base.defaultProps, {
clouds: []
});
关于inheritance - 从React中的父类(super class)继承defaultProps,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30646125/