我正在使用 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>
删除标签之间的空格
在react代码中寻找该错误似乎是在 SSR html 无法再水化时发生的。
因此,您最初以某种方式在客户端和服务器上呈现不同的树。
我在 Next.js 中使用 Modal 时遇到了同样的警告。我正在努力在主页上创建一个弹出窗口。
我找到了解决办法。如果模态显示状态首先变为真,则会产生此警告。所以我先将它设为 undefined 然后在页面呈现后将其设为 true 。代码如下。
const [modalShow, setModalShow] = React.useState();
useEffect(() => {
if ( modalShow === undefined ) {
setModalShow(true)
}
}, [modalShow])