反应服务器端呈现校验和警告

时间:2016-07-15 10:06:43

标签: reactjs server-rendering

我有一个文件上传组件。

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

Chrome:使用FormData

在进行服务器渲染时,iframe是用HTML创建的。

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

因此引起了警告: 警告:React尝试在容器中重用标记,但校验和无效

我的问题:如何处理这个案子?

1 个答案:

答案 0 :(得分:1)

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

在React运行其第一个渲染周期之前,将<iframe>置于页面中(或不在页面中)是这样做的。您可以在主要组件componentDidMount()方法中阻止此(以及修改DOM的任何其他内容)。

有一种更复杂的方法可以在服务器上获取userAgent字符串并在那里正确呈现(Radium执行此操作)。

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

相关问题