2017-05-15 3 views
1
<App> 
    <Header/> 
    <Content/> 
</App> 

私は上記の構造を持っていて、反応するアプリケーションで、<Content/>コンポーネントの高さを計算すると、window.innerHeight - <Header/>の高さですか? 理想的なソリューションは何ですか?コンポーネントの状態を設定し、コンポーネントへの小道具として更新機能を渡す必要がありますか? また、どのコンポーネントでもDOM/VirtualDOMツリーの任意のコンポーネントを取得する方法はありますか? ReactDOM.findDOMNodeを使うことができますが、refやコンポーネント自体を渡す必要があります。 document.getElementsByClassNameのような他の方法はありますか?反応内のDOMツリー内の兄弟コンポーネントまたは他のコンポーネントの参照を取得するにはどうすればよいですか?

+0

私はあなたの親から 'react-measure'を使って調べ、測定した値を小道具として子供に渡します。 – Aaron

答えて

0

兄弟コンポーネント間で情報を直接渡すための適切な方法(反パターンではない方法)はありません。あなたが示唆したように、私はあなたの最善の策は、親コンポーネントの状態としてこの情報を保存し、この状態を更新する子プロセスに関数を渡すことだと思います。

+0

このようなシナリオでは、reduxが入りますか? –

+0

Reduxはこのようなことには間違いなく役立ち、この問題を完全に解決します。あなたのプロジェクトが十分に小さく、このパターンを一度使用しなければならないことがわかっても、私はreduxは必要ではないと思います。 Reduxには、小さなプロジェクトではそれほど価値のないオーバーヘッドがあります。 –

関連する問題