2016-02-12 56 views
0

比方說,我有以下的模板:反應,根節點的顯示內容,同時加載

... 
<body> 
    <div id="root">Loading...</div> 
</body> 
... 

並作出反應成分是一樣的東西很明顯

ReactDOM.render(RootContainer, document.getElementById('root')); 

(例如簡化儘可能)

我想要的是在React處理請求的同時顯示div的內容,並在加載後用實際應用替換「正在加載...」。

我該怎麼做?我看到增加另一個DIV與「加載」消息,並且隱藏了一次應用程序加載的方式,但在我看來,像一個骯髒的方式

+0

爲什麼你看起來很髒?我認爲這是指示您的應用程序正在加載的完美有效方式。 – Andreyco

+0

只是一種感覺,它可能會更好的與應用程序將出現在同一個div內的「加載狀態內容」。我可能是錯誤的,因爲我是前端新手 - 這就是爲什麼我在這裏:) – Chvanikoff

回答

1

ReactDOM.render有一個可選的第三個回調參數作爲top level API documentation描述的,所以你可以做如下所示:

ReactDOM.render(<App />, document.getElementById('app'), function() { 
    document.getElementById('placeholder').style.display = 'none'; 
}); 
+0

謝謝,這正是我的意見在我的建議,只是想知道是否有其他方式來做到這一點,如「取代節點內容只有當React準備好了一切時「 – Chvanikoff

+0

@Chvanikoff準備好了什麼意思?如果你想阻止渲染,那麼你可能應該確保你在'componentWillMount'或'componentWillUpdate'內執行圖像預加載/ ajax請求? – toomanyredirects

+0

初始狀態通過websockets加載,所有的應用程序只是噸流信息 - 除非初始狀態加載,幾乎只有一個空白頁面,只有幾個鏈接。所以我想要的是在div中顯示一些信息 - 一種非常簡化的服務器端渲染 – Chvanikoff