猴子修补反应组件

时间:2016-08-21 17:35:33

标签: reactjs

假设我定义了一个这样的组件:

const myComponent = class MyComponent extends React.Component {}

以后我想在这个定义的组件中添加一个构造函数:

myComponent.constructor = function(props) {
  super(props)
  this.state = { hello: 'world' }
}

有人知道这是否可行?如果是这样,有人知道与上述相比,实施方面需要哪些差异?谢谢!

1 个答案:

答案 0 :(得分:2)

您不能覆盖es6类的构造函数。你可以用es5类来实现它,所以它可以用babel工作(而且很脆弱)。

您可以使用其他方法

MyComponent.prototype.methodName = function() {}

这是IMO缺失的功能,因为它可以更好地依赖注入。

如果TC39应该偶然发现这个页面,我很乐意拥有Reflect.setConstructor。