我有两个组成部分:
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/
我遇到与此相同的问题=&gt; How to override a parent class method in React?这似乎是因为只有EC-6风格定义的组件B.我的问题是我无法改变A类。在这种情况下,如何让React使用B&B的方法?
答案 0 :(得分:1)
在上面的代码中doSomething
是A上的实例方法和B中的原型方法。
与
大致相同 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 = () => { ... }
}