1

我正在使用官方文档学习 Next Js,因此,我正在尝试建立一个站点,并且我很想集成 MDB。

我按照他们在这里的建议安装了它: https ://mdbootstrap.com/react/5-min-quick-start/

但是当我运行http://localhost:3000/时,它会抛出错误,如下图所示

错误

你能帮助我吗?

4

2 回答 2

3

好像 mdb 不支持 SSR。

NextJS 中的每个页面都首先从服务器呈现。如果在一个渲染方法中访问了 mdbwindow或任何浏览器仅 JS 全局(history, localStorage),它将破坏 SSR。

不过,您确实有一些选择。

  1. 使用 NextJS动态组件禁用 SSR
  2. 等待NextJS 团队实现对某些组件禁用 SSR 的好方法
  3. 做SSR的时候创建一个mockwindow对象,避免报错
  4. Fork MDB 为 SSR 修复他们的组件,并创建一个 Pull Request 来贡献你的更改
于 2018-09-12T16:34:06.943 回答
0

window对象在服务器上不存在,仅在客户端可用。

除了 Clément Prévost 提到的内容之外,您还可以在之后加载所需的组件componentDidMount。这不是最有效的方法。

于 2018-12-20T10:54:56.013 回答