2016-08-15 1 views
0

Comment puis-je spécifier qu'un composant doit être rendu avant tout autre composant?Reactjs rend le composant avant les autres composants

Je veux spécifier que <Footer /> et tous les composants enfants du pied de page doivent être rendus avant tout autre composant. La raison pour laquelle je veux cela est parce que j'ai le code qui dépend du html que le pied de page rend, ce qui signifie que la référence à <Footer /> est undefined dans les autres composants si <Footer /> ne rend pas d'abord.

Voici un exemple:

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

Pouvez-vous fournir un peu plus de détails? Comme un échantillon de code minimum pour voir de quel type de références vous parlez. –

+0

J'ai pensé que la meilleure façon de le faire était d'utiliser un autre RenderDOM et de rendre le pied de page séparément en premier. –

Répondre

0

La seule façon que je vois pour vous ne le faites est:

  • Demandez les informations sur l'état de rendre pour le pied de page dans un état. (Supposons que votre nom soit isFooterRendered et qu'il s'agit d'un booléen)
  • Vous avez défini isFooterRendered comme étant false à l'état initial.
  • Vous ne agissent que les composants enfants quand isFooterRendered est true
  • En componentDidMountvous aurez une référence au pied de page, définissez isFooterRendered pour être vrai.

(Certaines personnes prétendent que c'est mauvais à setState sur componentDidMount mais dans votre cas ressemble à un cas d'utilisation légitime, à part qui réagissent Docs exposer une similar example)