TypeError:无法读取未定义的makeStyles.js

时间:2019-12-28 04:42:36

标签: reactjs typescript heroku material-ui mern

我在这里发表第一篇文章,我很不高兴,任何帮助将不胜感激。

当尝试在生产版本上访问我的MERN应用程序的Login组件时,此图像中显示了一系列以下类型错误:

enter image description here

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

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

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

    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;
}

这是我第一个部署的应用程序,尽管我尽了最大的努力来回滚,但我却茫然不知所措,从工作状态变为不工作状态。

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

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

请在此处查看 https://github.com/ahaq0/kumon_schedule/compare/fccc55a5...fccc55a5

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

9 个答案:

答案 0 :(得分:5)

添加 “ jss”:“ 10.0.0” 至 “依赖项”:{} 为我解决了问题

---更新30.12.19 ---

“ jss”现在可以删除,

错误已修复:

"@material-ui/core": "4.8.2",

答案 1 :(得分:5)

如果您像我一样使用yarn,则可以通过将resolutions字段添加到定位package.json jss版本的10.0.0来解决此问题。

package.json应该看起来像这样:

{

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

  },
  "resolutions": {
    "jss": "10.0.0"
  }
}

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

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

答案 2 :(得分:3)

就我而言,它是通过删除Box组件解决的。

答案 3 :(得分:1)

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

答案 4 :(得分:1)

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

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

import {
  borders,
  BordersProps,
  display,
  DisplayProps,
  flexbox,
  FlexboxProps,
  palette,
  PaletteProps,
  positions,
  PositionsProps,
  shadows,
  ShadowsProps,
  sizing,
  SizingProps,
  spacing,
  SpacingProps,
  typography,
  TypographyProps,
} from '@material-ui/system';
import styled from 'styled-components';

/*
 * Box with styled-components
 */
export const Box = styled.div<
  BordersProps & DisplayProps & FlexboxProps & PaletteProps & PositionsProps & ShadowsProps & SizingProps & SpacingProps & TypographyProps
>`${borders}${display}${flexbox}${palette}${positions}${shadows}${sizing}${spacing}${typography}`;

答案 5 :(得分:1)

尝试将12/$B$18升级到=IF($B$18=26,$B$20+14*[@[Payment Period]], EDATE($B$20,VLOOKUP($B$18,{1,12;4,3;12,1},2,FALSE)*[@[Payment Period]])) 。如果不起作用,请将material-ui添加到您的4.8.1中作为临时解决方案。

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

答案 6 :(得分:-1)

也面临同样的问题。我在@ material-ui / core ^ 4.7.1上,我只是去实验并删除了锁定文件和node_modules。然后我遇到了问题。 似乎问题出在@ material-ui / styles最新版本上。

通过将更新@ material-ui / core到4.6.1,删除锁定文件和node_modules,重新安装软件包来解决该问题。

答案 7 :(得分:-1)

快速解决方法:从dynamicSheet.update(props)删除属性“ .attach()”。 不建议用于生产环境,但是,它是任何本地开发环境的快速修复。

答案 8 :(得分:-1)

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