当前位置 : 主页 > 手机开发 > 其它 >

继承 – 从React中的超类继承defaultProps

来源:互联网 收集:自由互联 发布时间:2021-06-19
我认为一些道具(例如,主题)在组件中是如此普遍,以至于提取它们的处理(对于超类)是有意义的.然后它的默认值也属于那里. 但是,在React实现这一目标的唯一方法是什么? class Base extend
我认为一些道具(例如,主题)在组件中是如此普遍,以至于提取它们的处理(对于超类)是有意义的.然后它的默认值也属于那里.

但是,在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: []
});
网友评论