0
我有一個文件上傳組件。React服務器端渲染校驗和警告
IE8:使用iframe進行文件上傳。
Chrome:使用FormData
在做服務器渲染時,iframe是在HTML中創建的。
當Chrome加載頁面時,沒有iframe。
所以華林造成:警告:反應試圖重複使用的容器標記,但校驗和無效
我的問題:如何處理這種情況?
我有一個文件上傳組件。React服務器端渲染校驗和警告
IE8:使用iframe進行文件上傳。
Chrome:使用FormData
在做服務器渲染時,iframe是在HTML中創建的。
當Chrome加載頁面時,沒有iframe。
所以華林造成:警告:反應試圖重複使用的容器標記,但校驗和無效
我的問題:如何處理這種情況?
你可以解決這個問題。不管你是否應該是另一個問題...
無論是將放入頁面(或不放置)都是在React運行其第一個渲染週期之前完成的。您可以在主要組件componentDidMount()
方法中防止此操作(以及修改DOM的其他任何操作)。
在服務器上獲取userAgent字符串並在其中進行適當渲染有更復雜的方法(Radium這樣做)。
但是,該警告是無害的。它沒有與生產(縮小版)的React一起顯示,因此隻影響開發體驗。在我看來,我會說讓它保持原樣,而不是因爲發展中的警告而將更復雜的代碼投入生產。也許只是試着讓服務器默認爲而不是做iFrame。
就像你說的,我通過componentDidMount修復了它 – jasonjifly