我有两个组成部分:
var A = React.createClass( {
doSomething: function() { return "I am A" },
render() {
return(
<h1>{this.doSomething()}</h1>
);
}
});
class B extends A {
doSomething(): any {
console.log("I am B");
}
}https://jsfiddle.net/wp4wshdu/
我和这里的=> How to override a parent class method in React?有同样的问题,这似乎是因为只有在EC-6风格中定义的组件B。我的问题是我不能改变A类。在这种情况下,我如何使用B的方法作出反应?
发布于 2017-08-01 17:37:53
在上面的代码中,doSomething是A上的实例方法,B中是prototype方法。
大致上和
class A extends React.Component {
doSomething = () => {
console.log("I am A");
}
}
class B extends A {
doSomething() { ... }
}A的doSomething和B的doSomething在原型链中。传统的做法是,在任何地方都坚持ES6类中的方法的原型属性,以避免出现类似的问题。如果这是不可能的,那么doSomething也应该成为子类中的实例方法:
class B extends A {
doSomething = () => { ... }
}https://stackoverflow.com/questions/45443416
复制相似问题