2016-08-15 94 views
0

如何指定組件應在任何其他組件之前完全渲染?Reactjs在其他組件之前渲染組件

我想指定<Footer />和頁腳的所有子組件應在任何其他組件之前呈現。 我想要這樣做的原因是因爲我的代碼依賴於頁腳渲染的html,這意味着如果<Footer />不首先渲染,則其他組件中對<Footer />的引用是undefined

下面是一個例子:

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

你能否提供一些更多的細節?就像最低代碼樣本一樣,看看你在談論哪種引用。 –

+0

我認爲最好的方法是使用另一個RenderDOM,並首先單獨渲染頁腳。 –

回答

0

我看到你做到這一點的唯一方法是:

  • 對自己在狀態頁腳的呈現狀態的信息。 (讓我們假設你的名字是isFooterRendered,它是一個布爾值)
  • 你設置isFooterRenderedfalse在初始狀態。
  • 你只渲染孩子部件時isFooterRenderedtrue
  • componentDidMount你將不得不頁腳參考,設置isFooterRendered是真實的。

(一些人認爲是不好的setStatecomponentDidMount但在你的情況看起來像一個合法的使用情況下,除了從反應文檔暴露similar example