【问题标题】:React server side rendering checksum warningReact 服务器端渲染校验和警告
【发布时间】:2016-07-15 10:06:42
【问题描述】:

我有一个文件上传组件。

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

Chrome:使用 FormData

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

Chrome 加载页面时,没有 iframe。

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

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

【问题讨论】:

    标签: reactjs server-rendering


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 如你所说,我通过 componentDidMount 修复了它
    猜你喜欢
    • 2016-02-19
    • 2016-10-15
    • 2015-10-18
    • 2016-10-12
    • 1970-01-01
    • 2017-03-16
    • 2016-03-26
    • 1970-01-01
    • 2020-04-22
    相关资源
    最近更新 更多