反应服务器端渲染校验和警告



>我有一个文件上传组件。

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

Chrome:使用 FormData

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

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

所以警告是导致: 警告:React 试图在容器中重用标记,但校验和无效

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

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

无论是将<iframe>放入页面(或不放入页面)的是什么,都是在 React 运行其第一个渲染周期之前这样做的。您可以在主要组件componentDidMount()方法中防止这种情况(以及修改 DOM 的任何其他内容)。

有一种更复杂的方法可以在服务器上获取userAgent字符串并在那里适当地渲染(Radium这样做)。

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

相关内容

  • 没有找到相关文章

最新更新