Podczas próby uzyskania dostępu do komponentu logowania mojej aplikacji MERN w wersji produkcyjnej pojawia się seria następujących błędów typu pokazanych na tym obrazie:
Moja aplikacja ( https://github.com/ahaq0/kumon_schedule ) działa idealnie lokalnie i działała doskonale dobrze hostowana na Heroku już dziś.
Próbowałem wycofać wszystkie zmiany w kodzie, które wprowadziłem dzisiaj, ale bezskutecznie. Podobnie sprawdziłem plik package.json (i .lock), aby sprawdzić, czy zmieniłem zależność materialnego interfejsu użytkownika, ale było tak samo. I nie wydaje się, aby dowiedzieć się, dlaczego przestał działać nagle od wersji obsługiwanej tutaj .
Kod wiersza błędu znajduje się poniżej. Nie pisałem jednak, ponieważ jest to część materialnego interfejsu użytkownika.
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;
To moja pierwsza wdrożona aplikacja i nie wiem, jak wszystko poszło od pracy do niedziałania, pomimo moich najlepszych prób wycofania.
Edytować. Powinienem wspomnieć, że testowałem w Firefoksie, a także w Chrome, z którego pochodzi dziennik błędów.
Edytuj # 2. Po dużo więcej debugowaniu dowiedziałem się, że błąd zniknął, jeśli wycofam się, aby zatwierdzić fccc55a5 przez Heroku. Jednak jeśli utworzę nowy oddział z tym zatwierdzeniem i spróbuję wdrożyć ten oddział, to nie zadziała.
Zobacz tutaj https://github.com/ahaq0/kumon_schedule/compare/fccc55a5...fccc55a5
Kiedy powrócę do ostatniej wersji Heroku, będzie działać. Ale jeśli scalę poprzednie zatwierdzenie w nowy oddział i spróbuję go wdrożyć, nie zrobi tego.
źródło
Odpowiedzi:
Dodanie „jss”: „10.0.0” do „zależności”: {} naprawiło problem
--- Zaktualizowano 30.12.19 ---
„jss” można teraz usunąć,
błąd został naprawiony w:
źródło
Jeśli używasz tak
yarn
jak ja, możesz to rozwiązać, dodającresolutions
pole do wersjipackage.json
kierowaniajss
10.0.0
.package.json
powinien wyglądać tak:Udostępniłem również moje rozwiązanie na Github (i wydaje się, że zadziałało dla innych): https://github.com/mui-org/material-ui/issues/19005#issuecomment-569447204
Proszę przyjąć odpowiedź, jeśli ona również zadziałała dla Ciebie! :)
źródło
jss
10.0.1
wersja opublikowała przełamujące zmiany, które psują testy jednostkowe interfejsu użytkownika materiału. Więcej informacji na: github.com/cssinjs/jss/issues/1249W moim przypadku problem został rozwiązany przez usunięcie komponentu Box.
źródło
Mam do czynienia z tym samym problemem. Wystąpiło, ponieważ zaktualizowałem @ material-ui / core ^ 4.4.0 do @ material-ui / core ^ 4.8.1. Być może nastąpiły przełomowe zmiany w nowej wersji lub błąd. Najnowsza wersja została wydana zaledwie cztery dni temu, więc może nie być jeszcze rozwiązania. Ale w przypadku problemu spróbuj obniżyć wersję do @ material-ui / core ^ 4.4.0 lub poprzedniej wersji material-ui, której używasz, powinno działać. Nie ma potrzeby przywracania poprzednich zatwierdzeń.
źródło
Myślę, że problem dotyczy jss i komponentu Box
@material-ui/core
Do czasu rozwiązania problemu zainstalowałem
styled-components
i przepisałem składnik Box:źródło
Spróbuj zaktualizować
material-ui
do4.8.1
. Jeśli to nie działa, dodaj"jss": "10.0.0"
dopackage.json
tymczasowej poprawki.Źródło: https://github.com/mui-org/material-ui/issues/19005
źródło
"jss": "10.0.0"
działało dla mnie.W obliczu tego samego problemu. Byłem na @ material-ui / core ^ 4.7.1, po prostu poszedłem eksperymentować i usunąłem plik blokady i moduły_węzła. Potem stanąłem przed problemem. Wygląda na to, że problem dotyczy aktualnych wersji @ material-ui / styles.
Rozwiązano problem, przywracając aktualizację @ material-ui / core do 4.6.1, usunięto plik blokady i moduły node_modu, instalując ponownie pakiety.
źródło
Szybkie obejście: usuń właściwość „.attach ()” z dynamicSheet.update (rekwizyty). Nie jest to zalecane w przypadku środowisk produkcyjnych, jednak jest to szybka poprawka dla wszystkich lokalnych środowisk deweloperów.
źródło
przy użyciu npm:
1- usuń folder node_modules i plik package-lock.json
2- otwórz plik package.json
3- zmień lub dodaj to w zależności: „@ material-ui / core”: „^ 4.6.1”,
4 npm I
rozwiązać mój problem.
źródło