如何在 TS/NextJS 项目中设置 JSS?

How do I setup JSS in a TS/NextJS project?

我正在尝试使用 React、TypeScript、NextJS 和 Material-UI 设置一个基本的网络应用程序。我遇到的问题是在我拥有的项目中设置样式。我已经设置了一个 CodeSandbox environment 来说明我的问题。

无法在 Header.tsx

中的第 77 行注入 classes.list 属性

我的代码主要基于 MaterialUI 文档的 this example that uses a withStyles HOC and have also looked at this page。但是,它仍然会产生以下错误:

Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: undefined.

在上面链接的 CodeSandbox 上也可以看到该错误。我不确定该错误是否是由于 NextJs 工作方式的一些特殊原因造成的,因为 MaterialUI 存储库中的 TS 示例似乎工作正常。有没有人做过类似的事情?还是我试图以一种完全非正统的方式来做到这一点?

这就是您使用错误导出的原因。 改变这个:

export { Header } from "./Header/Header";

为此:

import Header from "./Header/Header";

export { Header };

Sandbox modified version

顺便说一句,下次别把命名搞得那么复杂,(索引,索引的东西)。如果您使用的是 Nextjs,请按照他们的示例进行操作,不要在 components 目录中创建另一个 pages 目录。