2016-07-15 63 views
0

我有一個文件上傳組件。React服務器端渲染校驗和警告

IE8:使用iframe進行文件上傳。

Chrome:使用FormData

在做服務器渲染時,iframe是在HTML中創建的。

當Chrome加載頁面時,沒有iframe。

所以華林造成:警告:反應試圖重複使用的容器標記,但校驗和無效

我的問題:如何處理這種情況?

回答

1

你可以解決這個問題。不管你是否應該是另一個問題...

無論是將放入頁面(或不放置)都是在React運行其第一個渲染週期之前完成的。您可以在主要組件componentDidMount()方法中防止此操作(以及修改DOM的其他任何操作)。

在服務器上獲取userAgent字符串並在其中進行適當渲染有更復雜的方法(Radium這樣做)。

但是,該警告是無害的。它沒有與生產(縮小版)的React一起顯示,因此隻影響開發體驗。在我看來,我會說讓它保持原樣,而不是因爲發展中的警告而將更復雜的代碼投入生產。也許只是試着讓服務器默認爲而不是做iFrame。

+0

就像你說的,我通過componentDidMount修復了它 – jasonjifly

相關問題