私が理解している限り、Reactでは、コンポーネントはネストされた階層を介して階層的な順序で通信する必要があります。このことから、アプリケーションのレイアウトコンテナ構造が自然/予期/論理コンポーネント階層と一致しない場合の対処方法コンポーネント階層と一致しないレイアウトコンテナを処理する方法は?
私の質問の例として、私は私が適切に実装するかどうかはわかりませんことを、私のアプリに基づいてシナリオを作ってみた:
画面を二等分に縦に分割されています。これは2つのコンテナを横に並べて行われます。各半分に対応する コンポーネントがあります。ItemsListおよびItemDetails。 ItemsList内にネストされ
、我々は上をクリック することができますいくつかの項目コンポーネントがあります。
たびに、対応する定義_itemIDプロップ値はそれがそこに項目詳細をロードして表示することができItemDetailsに送信する必要アイテム、上でクリックがあります。
問題はできるItemDetailsが項目の子で、まだあることを意図しています、画面の右側部分にもどのコンポーネント構造、与えられた、あります。 (少なくとも私が避けたい奇妙なCSSはありません)。ここで
レイアウトです:
<div className="wrapper">
<div className="itemList" style="width:50%; display:inline-block;">
<div className="item">item1</div>
<div className="item">item1</div>
<div className="item">item1</div>
</div>
<div className="itemDetails" style="width:50%; display:inline-block;">
The details of the selected item.
</div>
</div>
私は階層をアップし、次の子から親に情報を送ることができると考えているが、これは実用的でないようです。このシナリオが私の実際の問題を単純化しただけであることを考えれば(私はより多くの入れ子にされたコンポーネントを持っています)、これはコードが乱雑で混乱してしまうと思います。
Reactでこれを達成するクリーンで簡単な方法はありますか?私はいくつかの概念を欠いていますか?