反应服务器端呈现校验和警告
React server side rendering checksum warning
我有一个文件上传组件。
IE8: 使用 iframe 上传文件。
Chrome: 使用 FormData
做服务端渲染时,iframe是在HTML中创建的。
当 Chrome 加载页面时,没有 iframe。
因此引起警告:警告:React 试图在容器中重用标记,但校验和无效
我的问题:如何处理这个案例?
你可以解决这个问题。你是否应该是另一个问题...
在 React 运行 它的第一个渲染周期之前,无论是什么将 <iframe>
放入页面(或不放入)。您可以在主要组件 componentDidMount()
方法中防止这种情况(以及任何其他修改 DOM 的行为)。
有一种更复杂的方法可以在服务器上获取 userAgent 字符串并在那里适当地呈现(Radium 这样做)。
但是,该警告是无害的。它没有在 React 的生产(缩小)版本中显示,因此只会影响开发体验。在我看来,我会说保持原样,而不是因为开发中的警告而将更复杂的代码投入生产。也许只是尝试让服务器默认为 not 执行 iFrame。
我有一个文件上传组件。
IE8: 使用 iframe 上传文件。
Chrome: 使用 FormData
做服务端渲染时,iframe是在HTML中创建的。
当 Chrome 加载页面时,没有 iframe。
因此引起警告:警告:React 试图在容器中重用标记,但校验和无效
我的问题:如何处理这个案例?
你可以解决这个问题。你是否应该是另一个问题...
在 React 运行 它的第一个渲染周期之前,无论是什么将 <iframe>
放入页面(或不放入)。您可以在主要组件 componentDidMount()
方法中防止这种情况(以及任何其他修改 DOM 的行为)。
有一种更复杂的方法可以在服务器上获取 userAgent 字符串并在那里适当地呈现(Radium 这样做)。
但是,该警告是无害的。它没有在 React 的生产(缩小)版本中显示,因此只会影响开发体验。在我看来,我会说保持原样,而不是因为开发中的警告而将更复杂的代码投入生产。也许只是尝试让服务器默认为 not 执行 iFrame。