TypeError: ไม่สามารถอ่านคุณสมบัติ 'แนบ' ของ makeStyles.js ที่ไม่ได้กำหนด


15

เมื่อพยายามเข้าถึงส่วนประกอบเข้าสู่ระบบของแอป MERN ของฉันในเวอร์ชันการผลิตฉันได้รับข้อผิดพลาดประเภทต่อไปนี้ที่แสดงในภาพนี้:

ป้อนคำอธิบายรูปภาพที่นี่

แอพของฉัน ( https://github.com/ahaq0/kumon_schedule ) ทำงานได้อย่างสมบูรณ์แบบในพื้นที่และทำงานได้ดีกับโฮสต์บน Heroku เมื่อก่อนวันนี้

ฉันลองย้อนกลับการเปลี่ยนแปลงทั้งหมดในรหัสที่ฉันทำในวันนี้เพื่อประโยชน์ ฉันตรวจสอบ package.json (และ. ล็อค) เพื่อดูว่าฉันเปลี่ยนการพึ่งพา UI ของวัสดุหรือไม่ แต่นั่นก็เหมือนกัน ฉันไม่สามารถดูเหมือนจะคิดออกว่าทำไมมันหยุดการทำงานทั้งหมดในทันทีกับรุ่นเป็นเจ้าภาพที่นี่

รหัสสำหรับสายของข้อผิดพลาดอยู่ด้านล่าง อย่างไรก็ตามฉันไม่ได้เขียนเนื่องจากเป็นส่วนหนึ่งของ 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;

นี่เป็นแอปที่ปรับใช้ครั้งแรกของฉันและฉันก็รู้สึกว่าทุกอย่างเปลี่ยนจากการทำงานเป็นไม่ทำงานแม้ว่าฉันจะพยายามย้อนกลับ

แก้ไข ฉันควรจะพูดถึงว่าฉันทดสอบใน Firefox เช่นเดียวกับ Chrome ที่บันทึกข้อผิดพลาดมาจาก

แก้ไข # 2 หลังจากดีบั๊กมากขึ้นฉันพบว่าข้อผิดพลาดนั้นหายไปถ้าฉันย้อนกลับไปมอบ fccc55a5 ผ่าน Heroku อย่างไรก็ตามถ้าฉันสร้างสาขาใหม่ที่มีความมุ่งมั่นนั้นและพยายามปรับใช้สาขานั้นมันจะไม่ทำงาน

โปรดดูที่นี่ https://github.com/ahaq0/kumon_schedule/compare/fccc55a5...fccc55a5

เมื่อฉันย้อนกลับไปที่งานสร้างชิ้นสุดท้ายใน Heroku มันจะทำงานได้ แต่ถ้าฉันรวมที่ก่อนหน้านี้มุ่งมั่นในสาขาใหม่และพยายามที่จะปรับใช้มันจะไม่


สิ่งนี้ได้รับการแก้ไขหรือไม่
Mike K

คุณสามารถแก้ปัญหาชั่วคราวด้วยคำตอบของฉัน: stackoverflow.com/a/59514748/3971297
Alfonso M. García Astorga

คำตอบ:


10

การเพิ่ม "jss": "10.0.0" ไปยัง "dependencies": {} แก้ไขปัญหาให้ฉัน

--- อัปเดต 30.12.19 ---

สามารถลบ "jss" ได้แล้ว

ข้อผิดพลาดได้รับการแก้ไขใน:

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

1
ใช้งานได้สำหรับฉันขอบคุณถ้าคุณกำลังตีปัญหานี้ให้ตรวจสอบเวอร์ชันของ material-ui core ที่คุณติดตั้งอัพเกรดมัน (หรือถ้าคุณใช้ "^ 4.XX") เพียงแค่ลบ node_modules บวก package.lock json หรือ yarn.lock.json และดำเนินการติดตั้ง NPM สด
Braulio

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/issues/19005#issuecomment-569447204

โปรดยอมรับคำตอบถ้ามันใช้ได้สำหรับคุณเช่นกัน! :)


คุณรู้ได้อย่างไรว่านี่เป็นปัญหา
Mike K

2
@MikeK เนื่องจากjss 10.0.1รุ่นได้เผยแพร่การเปลี่ยนแปลงที่ทำให้การทดสอบหน่วย UI วัสดุแตก ข้อมูลเพิ่มเติมได้ที่: github.com/cssinjs/jss/issues/1249
Alfonso M. García Astorga


1

ฉันกำลังเผชิญกับปัญหาเดียวกัน มันเกิดขึ้นเพราะฉันอัพเดต @ material-ui / core ^ 4.4.0 เป็น @ material-ui / core ^ 4.8.1 อาจมีการแตกหักการเปลี่ยนแปลงในรุ่นใหม่หรือข้อผิดพลาด เวอร์ชั่นล่าสุดได้เปิดตัวเมื่อสี่วันก่อนดังนั้นอาจไม่มีวิธีการแก้ไข แต่สำหรับปัญหาของคุณลองลดระดับเป็น @ material-ui / core ^ 4.4.0 หรือเวอร์ชัน ui วัสดุก่อนหน้านี้ที่คุณใช้อยู่มันควรจะทำงานได้ ไม่จำเป็นต้องย้อนกลับไปสู่การคอมมิชชันก่อนหน้า


หลังจากอัปเดตวัสดุ -uii npm จะอัปเดตทั้งหมดการอ้างอิงดังนั้นการอัปเกรดเพียงอย่างเดียวจะไม่ทำงาน ทางออกที่ดีกว่าคือการลบทั้งโฟลเดอร์ "nodemodules" และแทนที่package.jsonและpackage-lock.jsonด้วยไฟล์เดียวกันจากการคอมมิชชันก่อนหน้า (ส่งก่อนการอัพเดท) จากนั้นทำการติดตั้ง npm ฉันทำสิ่งนี้และทุกอย่างทำงานได้ดี
Lalit Jharbade

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 / สไตล์รุ่นล่าสุด

แก้ไขปัญหาโดยการคืนค่าการอัพเดต @ material-ui / core เป็น 4.6.1 ลบไฟล์ล็อคและ node_modules ติดตั้งแพ็กเกจอีกครั้ง


-1

วิธีแก้ปัญหาด่วน: ลบคุณสมบัติ '.attach ()' จาก dynamicSheet.update (อุปกรณ์ประกอบฉาก) ไม่แนะนำให้ใช้สำหรับการผลิต envs อย่างไรก็ตามมันเป็นวิธีแก้ปัญหาด่วนสำหรับ env dev ท้องถิ่นใด ๆ


-1

ใช้ npm:
1-ลบโฟลเดอร์ node_modules และไฟล์ package-lock.json
2-เปิดไฟล์ package.json
3-เปลี่ยนหรือเพิ่มสิ่งนี้ภายใต้การอ้างอิง: "@ material-ui / core": "^ 4.6.1",
4- npm ฉัน
แก้ไขปัญหาของฉัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.