2016-07-15 108 views
0

我有一个文件上传组件。React服务器端渲染校验和警告

IE8:使用iframe进行文件上传。

Chrome:使用FormData

在做服务器渲染时,iframe是在HTML中创建的。

当Chrome加载页面时,没有iframe。

所以华林造成:警告:反应试图重复使用的容器标记,但校验和无效

我的问题:如何处理这种情况?

回答

1

你可以解决这个问题。不管你是否应该是另一个问题...

无论是将放入页面(或不放置)都是在React运行其第一个渲染周期之前完成的。您可以在主要组件componentDidMount()方法中防止此操作(以及修改DOM的其他任何操作)。

在服务器上获取userAgent字符串并在其中进行适当渲染有更复杂的方法(Radium这样做)。

但是,该警告是无害的。它没有与生产(缩小版)的React一起显示,因此只影响开发体验。在我看来,我会说让它保持原样,而不是因为发展中的警告而将更复杂的代码投入生产。也许只是试着让服务器默认为而不是做iFrame。

+0

就像你说的,我通过componentDidMount修复了它 – jasonjifly

相关问题