2016-08-15 12 views
0

他のコンポーネントの前にコンポーネントを絶対にレンダリングするように指定する方法を教えてください。Reactjsは他のコンポーネントの前にコンポーネントをレンダリングする

<Footer />と、フッターのすべての子コンポーネントを他のコンポーネントの前にレンダリングするように指定します。 <Footer />が最初にレンダリングされない場合、<Footer />への参照が他のコンポーネントのundefinedであることを意味する、フッターがレンダリングしているhtmlに依存するコードがあるためです。

ここでは例です:

export default class Layout extends React.Component { 
    ... 
    render(){ 
     return (
      <Body /> 
      <Footer /> //Render first 
     ); 
    } 
} 
+0

あなたはもう少し詳細を提供してもらえますか?あなたが話している参照の種類を確認するための最小コードサンプルのように。 –

+0

これを行う最善の方法は、別のRenderDOMを使用してフッターを個別にレンダリングすることでした。 –

答えて

0

あなたがそれを行うのですために私が見る唯一の方法は次のとおりです。

  • に関する情報は状態でフッターのステータスをレンダリング持っています。 (あなたの名前はisFooterRenderedとし、それはブール値です)
  • 初期状態でisFooterRenderedfalseに設定します。
  • あなただけisFooterRenderedあなたはフッターへの参照を持っていますtrue
  • componentDidMountであるとき、子コンポーネントをレンダリング真であるとisFooterRenderedを設定します。

(一部の人々はそれがcomponentDidMountではなく、あなたのケースでsetStateに悪いだと主張するが、合法的なユースケースのように見える、それはさておきsimilar exampleを公開ドキュメントに反応)

関連する問題