2016-07-28 11 views
0

子クラスの関数をオーバーライドするとき、その関数の親バージョンをどのように呼び出すことができますか?React:オーバーライド時に関数の親バージョンを呼び出す

class AbstractList extends React.Component { 
    getItems() { 
    ... 
    } 
} 

class SortableList extends AbstractList { 
    getItems() { 
    ... do sorting first 
    return super.getItems(); // QUESTION: how am I supported to actually do this? 
    } 
} 

ありがとう:

はと反応して、私は二つの成分AbstractListとSortableListを持っていると言います!

+0

すればよいですか? –

答えて

1

あなたはそれを

チェックこのissue

githubの上の多くの人々は、ツール としてではなく、中に抽象化の主要な手段としてだけではなく、オブジェクト指向の継承を使用することに慣れているこの方法を行うべきではありません彼らのアプリケーション。 Java屋で働いたことがありますが、私が何を話しているのか分かります。 私の個人的な意見では、古典的なオブジェクト指向の継承( 多くの一般的な言語で実装されている)は多くの場合、多くの場合最も良いツールではありません。 しかし、 は、フレームワークまたはパラダイム内で継承が使用されている場合、 が主要な抽象化(React)として機能構成を使用している場合、さらに注意して接近するように注意する必要があります。 の継承でレンダリングを組み合わせるときに人々が思いつくものがありますが、それは意味を持たず、単純な の構成で対処されています。また、突然変異をより便利にするリスクもあります。 は、REACTコンポーネントを使用している場合にのみ、継承の深さを制限して継承の深さを制限する、 のリアクションコンポーネントの作成のために、より良い構文としてのES6クラスから始めることが理想的かもしれません。 - すべての非反応 ES6クラスの使用は制限されません)。代わりに、この

class AbstractList extends React.Component { 
    getItems() { 
    ... 
    } 
} 

class SortableList extends AbstractList { 
    getItems() { 
    ... do sorting first 
    return super.getItems(); 
    } 
} 

あなたはこのコードを実行しようとしたことがあり

class AbstractList extends React.Component { 
    getItems() { 
    ... 
    } 
} 

class SortableList extends React.Component { 
    render() { 
     return <AbstractList items={this.props.item}>{this.props.children}</AbstractList>; 
    } 
} 
+0

素晴らしい、相続の上の構成。クラシック:)ありがとう! –

関連する問題