首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >React + ES6:层次结构的defaultProps

React + ES6:层次结构的defaultProps
EN

Stack Overflow用户
提问于 2015-10-30 09:56:24
回答 1查看 6.9K关注 0票数 3

由于我将代码重构为ES6,所以我将所有默认值移动到SomeClass.defaultProps = { ... }

假设存在类层次结构的情况,而我需要保留对整个层次结构的一些默认值。但是问题defaultProps不适用于扩展的类:

代码语言:javascript
运行
复制
class AbstractComponent extends React.Component {
  constructor(props) { super(props) }
}
class OneOfImplementations extends AbstractComponent {
  constructor(props) { super(props) }
}
//Problem: hierarchy defaults doesn't work
AbstractComponent.defaultProps = { name: 'Super' } 

小提琴例子

P.S.S.--我想知道,在整个层次结构中,保留共用(变量/函数)的最佳位置在哪里?也许在AbstractComponent做这样的事

代码语言:javascript
运行
复制
constructor(props) {
  super(_.assign(props, {
    commonValue: 128,
    commonCallback: _.noop
  }));
}

但问题是不可能覆盖子类中的一个属性

EN

回答 1

Stack Overflow用户

发布于 2015-10-30 10:40:33

"defaultProps“属性的声明顺序似乎很重要:

代码语言:javascript
运行
复制
class AbstractComponent extends React.Component {
  constructor(props) { super(props) }

  render() {
    return <div>Prop: [ {this.props.name} ]</div>
  }
}
AbstractComponent.defaultProps = { name: 'Super' }

class ComponentImpl1 extends AbstractComponent {
  constructor(props) { super(props) }
}

// works

http://jsfiddle.net/jwm6k66c/103/

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33433153

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档