TypeError: Неможливо прочитати властивість 'attach' невизначеного makeStyles.js


15

При спробі отримати доступ до компонента Login мого додатка MERN у виробничій версії, я отримую ряд таких помилок типу, показаних на цьому зображенні:

введіть тут опис зображення

Мій додаток ( https://github.com/ahaq0/kumon_schedule ) прекрасно працює на локальному рівні та працював ідеально на Хероку сьогодні.

Я спробував повернути всі зміни в коді, які я сьогодні вніс, безрезультатно. Так само я перевірив package.json (і .lock), щоб побачити, чи змінив залежність інтерфейсу матеріалу, але це було те саме. Я не можу зрозуміти, чому він перестав працювати раптом на розміщується версії тут .

Код рядка помилки знаходиться нижче. Однак я не писав, оскільки це частина матеріалу інтерфейсу користувача.

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;

Це моє перше розгорнуте додаток, і я втрачаю те, як все перейшло від роботи до непрацюючи, незважаючи на мої найкращі спроби повернути речі.

Редагувати. Слід зазначити, що я перевірив Firefox, а також Chrome, звідки походить журнал помилок.

Редагувати №2. Після набагато більшої налагодження я виявив, що помилка відсутня, якщо я відкатуюсь, щоб здійснити fccc55a5 через Heroku. Однак якщо я з новою гілкою я зроблю нову гілку і спробую розгорнути її, вона не вийде.

Дивіться тут https://github.com/ahaq0/kumon_schedule/compare/fccc55a5...fccc55a5

Коли я повернуся до останньої збірки в Heroku, вона спрацює. Але якщо я об'єднаю цю попередню команду в нову гілку і спробую її розгорнути, вона не стане.


Це було виправлено?
Майк К

Ви можете вирішити це тимчасово моєю відповіддю: stackoverflow.com/a/59514748/3971297
Альфонсо М. Гарсія Асторга

Відповіді:


10

Додавши "jss": "10.0.0" до "залежності": {} вирішив проблему для мене

--- Оновлено 30.12.19 ---

"jss" тепер можна видалити,

помилка була виправлена ​​у:

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

1
Це працювало для мене, дякую, якщо ви стикаєтесь з цією проблемою, перевірте встановлену вами версію ядра material-ui, яку ви встановили, оновіть її (або якщо ви використовуєте "^ 4.XX"), просто видаліть node_modules, плюс package.lock. json або yarn.lock.json та виконати нову установку npm
Брауліо

6

Якщо ви використовуєте, 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/isissue/19005#issuecomment-569447204

Будь ласка, прийміть відповідь, якщо вона теж працювала для вас! :)


Звідки ви знали, що це питання?
Майк К

2
@MikeK, оскільки jss 10.0.1версія опублікувала переломні зміни, які порушують тести одиничного інтерфейсу Material. Більше інформації за адресою: github.com/cssinjs/jss/isissue/1249
Альфонсо М. Гарсія Асторга


1

Я стикаюся з тим же питанням. Це сталося через те, що я оновив @ material-ui / core ^ 4.4.0 до @ material-ui / core ^ 4.8.1. Можливо, в новій версії можливі порушення змін або помилка. Остання версія вийшла всього чотири дні тому, тому рішення, можливо, ще не існує. Але для вашої проблеми спробуйте перейти на @ material-ui / core ^ 4.4.0 або попередню версію матеріалу-ui, яку ви використовували, вона повинна працювати. Не потрібно відмовлятися від попередніх комісій.


Після оновлення матеріалу ui npm оновить усі його залежності, тому просто пониження не буде працювати. Кращим рішенням може бути видалення всієї папки "nodemodules" і замінити package.json і package-lock.json тими ж файлами з попереднього фіксації (зробити їх безпосередньо перед оновленням). Потім встановіть npm, я зробив це, і все працює нормально.
Лалит Джарбаде

1

Я думаю, проблема в jss та компоненті Box в @material-ui/core

Поки це не виправлено, я встановив 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}`;


-1

Зіткнувшись з тим же питанням. Я був на @ material-ui / core ^ 4.7.1, я просто пішов на експеримент і видалив файл блокування та node_modules. Тоді я зіткнувся з проблемою. Здається, проблема є в оновлених версіях @ material-ui / stils.

Вирішили проблему, повернувши оновлення @ material-ui / core до 4.6.1, видалили файл блокування та node_modules, знову встановивши пакети.


-1

Швидкий спосіб вирішення: видаліть властивість '.attach ()' з dynamicSheet.update (реквізит). Не рекомендується для виробничих ансамблів, однак це швидке виправлення будь-яких місцевих розробників.


-1

за допомогою npm:
1- видаліть папку node_modules та файл package-lock.json
2- відкрийте файл package.json
3- змініть або додайте це в залежності: "@ material-ui / core": "^ 4.6.1",
4- npm я
вирішив свою проблему.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.