に反応します私の新しいビューの内容をレンダリングで返すことはできません。MyViewは包含階層の上位にレンダリングされます。コンポーネントの継承は、私はビューであるコンポーネントを作成したい、私はこのような何かをしたいと思うと言う
だから私は、これにできるようにしたいと思います:
class MyView extends View {
render() {
return (
<Stuff />
);
}
}
に反応します私の新しいビューの内容をレンダリングで返すことはできません。MyViewは包含階層の上位にレンダリングされます。コンポーネントの継承は、私はビューであるコンポーネントを作成したい、私はこのような何かをしたいと思うと言う
だから私は、これにできるようにしたいと思います:
class MyView extends View {
render() {
return (
<Stuff />
);
}
}
あなたは直接自分のものを返す必要があります。
class MyView extends View {
render() { return <Stuff/>; }
}
ことは可能ですが、お勧め。私たちに与えられた4つのギャングによって与えられるルールは、継承よりも「好意的な構成」です。構成はずっと柔軟です。
ブロックヘッドの回答として、継承はお勧めしません。しかし、あなたが描いたものと似た何かが、構図で実現できます。
ルートに応じて異なるコンポーネントがロードされているListコンポーネントである可能性のあるベースコンポーネントを作成できます。たとえば、特定のデータの読み込みは、BaseComponentによって常に実行され、小道具を子どもに渡すだけです。
このため、異なる子コンポーネントを含むBaseComponentsを呼び出す異なるコンテナも必要です。
終わりに、コンテナはこのようになります:
<BaseComponent>
<Children1 />
<Children2 />
</BaseComponent>
そして:
<BaseComponent>
<Children10 />
<Children12 />
</BaseComponent>
私が上で答えたように、継承のための有効な役割があると思います(継承を使用していたほとんどの場合、構成を使用する必要があります)。しかし、私の質問は本当に別の層の 'それ自身'を追加するのではなく、それを含むコンポーネントがちょうど子供を返すことができるかどうかの周りにありました:) – Janos
私は、組成物対継承上の点に同意します。それにもかかわらず、継承は完全に禁止されるべきではなく、特定の事柄に対して有効かつ有用な手法です。ここでは、特定の基本的な動作をサポートするViewのタイプを紹介したいと思います。レンダリングを行っているビューが既にビューである場合、別のレンダービューを返さなければならない理由が考えられました。 – Janos