类型错误:无法读取未定义的 makeStyles.js 的属性“附加”

Ind*_*ct 15 heroku typescript reactjs material-ui mern

在生产版本上尝试访问我的 MERN 应用程序的登录组件时,我收到一系列如下图所示的类型错误:

在此处输入图片说明

我的应用程序 ( https://github.com/ahaq0/kumon_schedule ) 在本地运行良好,今天早些时候托管在 Heroku 上运行良好。

我尝试回滚我今天所做的代码中的所有更改,但无济于事。同样,我检查了 package.json(和 .lock)以查看是否更改了材质 UI 依赖项,但结果是一样的。我似乎无法弄清楚为什么它在此处的托管版本上突然停止工作。

错误行的代码如下。但是,我没有写,因为它是 Material UI 的一部分。

if (sheetManager.dynamicStyles) {
    var dynamicSheet = stylesOptions.jss.createStyleSheet(sheetManager.dynamicStyles, _extends({
        link: true
    }, options));
    dynamicSheet.update(props).attach();
    state.dynamicSheet = dynamicSheet;
    state.classes = mergeClasses({
        baseClasses: sheetManager.staticSheet.classes,
        newClasses: dynamicSheet.classes
    });

    if (sheetsRegistry) {
        sheetsRegistry.add(dynamicSheet);
    }
} else {
    state.classes = sheetManager.staticSheet.classes;
}

sheetManager.refs += 1;
Run Code Online (Sandbox Code Playgroud)

这是我第一个部署的应用程序,尽管我尽了最大努力回滚,但我对一切如何从工作到不工作感到茫然。

编辑。我应该提到我在 Firefox 以及错误日志来自的 Chrome 中进行了测试。

编辑#2。经过大量调试后,我发现如果我回滚到通过 Heroku 提交 fccc55a5,错误就会消失。但是,如果我使用该提交创建一个新分支并尝试部署该分支,它将无法正常工作。

请看这里 https://github.com/ahaq0/kumon_schedule/compare/fccc55a5...fccc55a5

当我恢复到 Heroku 中的最后一次构建时,它将起作用。但是如果我将之前的提交合并到一个新分支并尝试部署它,它不会。

jou*_*elm 10

将 "jss": "10.0.0" 添加到 "dependencies": { } 为我解决了这个问题

--- 更新 30.12.19 ---

现在可以删除“jss”,

错误已修复:

"@material-ui/core": "4.8.2",
Run Code Online (Sandbox Code Playgroud)


Alf*_*rga 6

如果你yarn像我一样使用,那么你可以通过向resolutions你的package.json定位jss 10.0.0版本添加一个字段来解决它。

package.json 应该是这样的:

{

  "dependencies": {
    "@material-ui/core": "^4.8.1",

  },
  "resolutions": {
    "jss": "10.0.0"
  }
}
Run Code Online (Sandbox Code Playgroud)

我也在 Github 上分享了我的解决方案(似乎对其他人有用):https : //github.com/mui-org/material-ui/issues/19005#issuecomment-569447204

如果它也对您有用,请接受答案!:)

  • @MikeK 因为 `jss` `10.0.1` 版本已经发布了破坏 Material UI 单元测试的重大更改。更多信息请访问:https://github.com/cssinjs/jss/issues/1249 (2认同)

小智 1

我面临着同样的问题。发生这种情况是因为我将 @material-ui/core^4.4.0 更新为 @material-ui/core^4.8.1。新版本中可能存在重大更改或错误。最新版本刚刚发布四天,因此可能还没有解决方案。但对于您的问题,请尝试降级到 @material-ui/core^4.4.0 或您正在使用的先前版本的material-ui,它应该可以工作。无需回滚到之前的提交。