首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不能覆盖在React中的方法

不能覆盖在React中的方法
EN

Stack Overflow用户
提问于 2017-08-01 16:44:35
回答 1查看 5.1K关注 0票数 1

我有两个组成部分:

代码语言:javascript
复制
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的方法作出反应?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-01 17:37:53

在上面的代码中,doSomething是A上的实例方法,B中是prototype方法。

大致上和

代码语言:javascript
复制
 class A extends React.Component {
   doSomething = () => {
     console.log("I am A");
   } 
 }

 class B extends A {
   doSomething() { ... } 
 }

A的doSomething和B的doSomething在原型链中。传统的做法是,在任何地方都坚持ES6类中的方法的原型属性,以避免出现类似的问题。如果这是不可能的,那么doSomething也应该成为子类中的实例方法:

代码语言:javascript
复制
 class B extends A {
   doSomething = () => { ... } 
 }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45443416

复制
相关文章

相似问题

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