TypeError: 无法读取未定义的 makeStyles.js 的属性 “附件”

共9个回答, 标签: reactjs typescript heroku material-ui mern

这里的第一篇文章,我已经不知所措了,任何帮助都将不胜感激。

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

enter image description here

我的应用程序 (Https://github.com/ahaq0/kumon_schedule) 在当地工作得非常好,今天早些时候在 heroku 上工作得非常好。

我试着回滚我今天所做的代码中的所有更改,但都没有用。同样,我检查了 package.json (和.锁) 看看我是否改变了材料 ui 依赖关系,但那是一样的。我似乎不明白为什么它突然停止在托管版本上工作这里.

错误行的代码如下。然而,我没有写,因为它是材料 ui 的一部分。

Var dynamicSheet = 样式选项.jss.createStyleSheet (sheetManager.dynamicStyles,_ extends ({
链接: 真
},选项));
DynamicSheet.update (道具).attach ();
State.dynamicSheet = dynamicSheet;
状态。类 = 合并类 ({
基本分类: sheetManager.staticSheet.Class,
新类: 动态表。类
});

如果 (sheetsRegistry) {
SheetsRegistry.add (dynamicSheet);
}
} Else {
State.Class = sheetManager.staticSheet.Class;
}

SheetManager。参考文献 = 1;
}

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

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

编辑 #2。经过更多的调试,我发现如果我通过 heroku 回滚到提交 fccc55a5,错误就消失了。但是,如果我用该提交创建一个新分支并尝试部署该分支,它将不起作用。

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

当我回到 heroku 的最后一个版本时,它会起作用。但是,如果我将以前的提交合并到一个新的分支,并尝试部署它,它不会。

第1个答案

如果您使用yarn like me, then you can solve it by adding a resolutions field to your package.json targeting jss 10.0.0版本。

package.json应该是这样的:

{

“依赖关系”: {
"@ Material-ui/core": "^ 4.8.1",

},
【决议】: {
“Jss”: “10.0.0”
}
}

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

请接受答案,如果它也为你工作!:)

第2个答案

加法

“Jss”: “10.0.0”

到 “依赖项”: {}

为我修正了这个问题

第3个答案

在我的情况下,它通过移除盒子组件来解决。

第4个答案

我面临着同样的问题。它发生是因为我更新了 @ material-ui/core ^ 4.4.0 到 @ material-ui/core ^ 4.8.1。新版本可能会有突破性的变化或错误。最新版本仅在四天前发布,因此可能还没有解决方案。但是对于你的问题,尝试降级到 @ material-ui/core ^ 4.4.0 或你使用的以前版本的 material-ui,它应该可以工作。没有必要回滚到以前的提交。

第5个答案

尝试升级material-ui to 4.8.1. If it does not work, add "jss": "10.0.0" to your package.json作为暂时的解决办法。

来源:Https://github.com/mui-org/material-ui/issues/19005

第6个答案

也面临同样的问题。我在 @ material-ui/core ^ 4.7.1 上,我只是去实验并删除了锁定文件和 node _ modules。然后我面对了这个问题。 似乎这个问题是关于 @ material-ui/styles 的最新版本。

通过将更新 @ material-ui/core 恢复到 4.6.1,删除锁定文件和 node_modules,再次安装软件包,解决了这个问题。

第7个答案

我认为问题在于 jss 和 Box 组件@material-ui/core

在修好之前,我已经安装了styled-components并重写 Box 组件:

导入 {
边界
BordersProps
显示
显示道具
Flexbox
FlexboxProps
调色板
PaletteProps
位置
位置道具
阴影
阴影道具
尺寸
Sizzingprops
间隔
SpacingProps
排版
排版道具
} 来自 '@ material-ui/system';
从 “样式组件” 导入样式;

/*
* 带样式组件的盒子
*/
导出 const Box = styled.div <
BordersProps & DisplayProps & FlexboxProps & PaletteProps & PositionsProps & ShadowsProps & SizingProps & SpacingProps & TypographyProps
> '$ {边框} $ {显示} $ {flexbox} $ {调色板} $ {位置} $ {阴影} $ {尺寸} $ {间距} $ {排版}';

第8个答案

快速解决方法: 从 dynamicSheet.update (props) 中删除属性 “.attach ()”。 对于生产环境来说,这是不可取的,但是,对于任何本地开发环境来说,这是一个快速解决方案。

第9个答案

使用 npm:
1-删除 node_modules 文件夹并 package-lock.json 文件
2-打开 package.json 文件
3-在依赖项下更改或添加此: “@ material-ui/core”: “^ 4.6.1”,
4-Npm i
解决了我的问题。

相关问题

如何使用使用效果挂钩注册事件? 未知的浏览器 kaios 在 Set间隙中使用 "反应状态" 挂钩时状态不更新 在类实例中跟踪状态 如何解决: &ldquo;找不到规则 &#39;@ typescript-eslint/一致类型断言&#39; 的定义&rdquo; 如何将月份值从一个日期对象复制到另一个日期对象?[复制] TypeError: 无法读取未定义的 makeStyles.js 的属性 &ldquo;附件&rdquo; 将 Flask 应用程序部署到 Heroku 时出现奇怪的 &ldquo;is_xhr&rdquo; 错误 如何阻止 Heroku 更改位置标头并使用我的 Spring 引导 OAuth2 服务导致401? 无法让 material-ui datepicker 工作 什么时候使用 &ldquo;类&rdquo; 和 &ldquo;类名称&rdquo; 与材料 UI?