React / nextJS:如何调试SSR react应用程序的不同节点?

JavaScript React.js

GO

2020-03-23

我正在运行nextJS应用程序,该应用程序正在运行SSR。

但是当我得到错误时:

警告:没想到服务器HTML在<div>中包含<div>。

因此,服务器端和客户端节点之间似乎存在差异。我如何找到这些差异?

这是一个示例应用程序的仓库:

https://github.com/jaqua/nextjs-app

只要运行npm installnpm run dev

第2689篇《React / nextJS:如何调试SSR react应用程序的不同节点?》来自Winter(https://github.com/aiyld/aiyld.github.io)的站点

1个回答
Gil伽罗小宇宙 2020.03.23

我将首先查看到达浏览器的html(chrome devtools中的“网络”选项卡),然后反应可能仍然是渲染客户端,因此您可以在客户端渲染和比较后看到当前的DOM(转到“元素”选项卡chrome devtools->右键单击html元素,然后选择“复制>复制outterHTML”)

如果失败,您可以尝试在浏览器内部添加断点,以使自身反应:function canHydrateInstance @ ReactDOMHostConfig.js

https://github.com/facebook/react/blob/c954efa70f44a44be9c33c60c57f87bea6f40a10/packages/react-dom/src/client/ReactDOMHostConfig.js

可能与此类问题相关的链接:

React 16警告“ warning.js:36警告:没想到服务器HTML在<div>中包含<div>。”

https://github.com/zeit/next.js/issues/5367

问题类别

JavaScript Ckeditor Python Webpack TypeScript Vue.js React.js ExpressJS KoaJS CSS Node.js HTML Django 单元测试 PHP Asp.net jQuery Bootstrap IOS Android