我正在使用带有服务器端渲染的 React 16 beta (react-fiber)
我要理解这是什么意思?
warning.js:36 Warning: Did not expect server HTML to contain a <div> in <div>.
我正在使用带有服务器端渲染的 React 16 beta (react-fiber)
我要理解这是什么意思?
warning.js:36 Warning: Did not expect server HTML to contain a <div> in <div>.
只需将快速响应更改为
<body>
<div id="root">
${markup}
</div>
</body>
至
<body>
<div id="root">${markup}</div>
</body>
删除标签之间的空格
在反应代码中寻找该错误似乎是当 SSR html 无法再水化时发生的。
因此,您最初以某种方式在客户端与服务器上呈现不同的树。
在 Next.js 中使用 Modal 时,我遇到了同样的警告。我正在努力在主页上创建一个弹出窗口。
我找到了解决方案。如果模态显示状态首先出现,则会产生此警告。所以我先把它设为 undefined ,然后在页面渲染后将它设置为 true 。代码如下。
const [modalShow, setModalShow] = React.useState();
useEffect(() => {
if ( modalShow === undefined ) {
setModalShow(true)
}
}, [modalShow])