뚠뚠멍의 생각들

React - kakao is not defined แก้ไขปัญหานี้อย่างไรดี

สร้าง: 2024-09-02

สร้าง: 2024-09-02 22:28

  • ปัญหา
  • การแก้ไข
  • สาเหตุ
  • ความรู้สึก


ปัญหา

ระหว่างการเชื่อมต่อ Kakao Map API ในสภาพแวดล้อม React 18 และ create-react-app แผนที่ไม่แสดงผล!

เนื่องจากแท็กสคริปต์ถูกแทรกไว้ในแท็ก head ฉันจึงคิดว่ามันจะโหลดก่อนที่เบราว์เซอร์จะแสดงผล

**เขียน HTML แล้วแต่ไม่แสดงผลเลย!**

~ประมาณว่าโค้ดที่เรียกใช้ Kakao Map ในแท็ก head ของ index.html~


แต่ในคอนโซลมีเพียง 'kakao is not defined' เท่านั้นที่บันทึกไว้และไม่มีอะไรแสดงผลเลย


การแก้ไข

พื้นฐาน: องค์ประกอบของ React ไม่เข้าถึงออบเจ็กต์ระดับโลกโดยตรง


วิธีแก้ไข 1-1

ประกาศตัวแปร 'kakao' จากออบเจ็กต์ระดับโลกนอกฟังก์ชันองค์ประกอบ


วิธีแก้ไข 1-2

สร้างฟังก์ชันที่จำเป็นในการแสดงผล Kakao Map เป็น Custom Hook แยกต่างหาก


โดยทั่วไป ฟังก์ชันที่จำเป็นสำหรับแผนที่ เช่น เหตุการณ์การลาก เหตุการณ์การคลิก และการจัดการเครื่องหมาย

แทนที่จะฝังไว้ในองค์ประกอบ

การแยกเป็น Custom Hook จะดีกว่าทั้งในแง่ของการนำกลับมาใช้ใหม่และการอ่าน


สาเหตุ

จำเป็นต้องเข้าใจแนวคิดของ React เกี่ยวกับเหตุผลที่ React ไม่เข้าถึงออบเจ็กต์ระดับโลก


1) การห่อหุ้มและโมดูลาร์

- องค์ประกอบแต่ละส่วนควรเป็นอิสระและสามารถนำกลับมาใช้ใหม่ได้ หากองค์ประกอบจำนวนมากขึ้นอยู่กับออบเจ็กต์ระดับโลก มันจะทำให้สูญเสียความเป็นอิสระและซับซ้อนมากขึ้น


2) ประสิทธิภาพและการบำรุงรักษาที่ง่าย

- React จะแสดงผลซ้ำเมื่อสถานะเปลี่ยนแปลง ออบเจ็กต์ระดับโลกไม่เหมาะสำหรับการติดตามการเปลี่ยนแปลงสถานะ


3) การจัดการสถานะจากส่วนกลาง

- อย่างไรก็ตาม หากต้องการแชร์ตัวแปรหลายตัว ให้ใช้ไลบรารีจัดการสถานะส่วนกลาง เช่น Redux

ส่วนกลาง -> ควบคุมการไหลของข้อมูลไปยังองค์ประกอบเพื่อหลีกเลี่ยงข้อผิดพลาดและทำให้การบำรุงรักษาง่ายขึ้น


* การแสดงผลแบบ Server-Side

เมื่อเร็วๆ นี้ การแสดงผลแบบ Server-Side ถูกนำมาใช้กันอย่างแพร่หลายเพื่อเพิ่มประสิทธิภาพ SEO (การปรับให้เหมาะสมกับเครื่องมือค้นหา) แต่ไม่สามารถเข้าถึงออบเจ็กต์ window จากฝั่งเซิร์ฟเวอร์ได้!!


ความรู้สึก

นี่คือปัญหาที่ฉันพบเจอระหว่างการพัฒนา React Project ครั้งแรกของฉัน

ฉันทำงานกับ Vue มาแล้วกว่า 2 ปี แต่เมื่อเริ่มโครงการ React

ฉันรู้สึกงงมากที่ไม่สามารถแสดงผล Kakao Map ได้...!!!


เมื่อเทียบกับ Vue โครงสร้างโฟลเดอร์และ Hook ดูเหมือนจะมีอิสระมากกว่า ทำให้รู้สึกยากขึ้น

ฉันต้องคิดหนักว่าจะเขียนอย่างไรให้มีประสิทธิภาพ

ฉันต้องฝึกฝนเพิ่มเติมผ่าน Toy Project เหมือนกับของเล่นจริงๆ


* บล็อกนี้เป็นครั้งแรกของฉัน และฉันรู้สึกว่า 'durumis' (ดูรูมิส) นั้นค่อนข้างแปลกใหม่และสนุก

และยังมีสรุป 3 บรรทัดที่คนไทยชอบอีกด้วย ㅋㅋ

ฉันหวังว่าจะได้พบกับนักพัฒนาจากต่างประเทศด้วย

แต่ตัวแก้ไขโค้ดควรได้รับการปรับปรุงบ้าง


ยินดีรับฟังความคิดเห็นและคำติชม!~

ขอให้ทุกท่านมีความสุขในแต่ละวัน!




ความคิดเห็น0

[7 วัน] สร้างเกมสนุกๆ กับ AIนี่คือวันที่ 7 ของการพัฒนาเว็บเกมที่ใช้ AI ช่วยเหลือโดยอิงจาก D&D5e เราประสบความสำเร็จในการปรับปรุงประสิทธิภาพด้วยการแยกเลเยอร์ของแคนวาสและการเปลี่ยนวิธีการ ESM รวมถึงการใช้งานระบบปฏิสัมพันธ์กับสิ่งปลูกสร้างและเอฟเฟกต์การต่อสู้ ตรวจสอบได้ที่ ggoban.com/d2
꼬반
꼬반
꼬반
꼬반

November 13, 2024

29 พ.ย. 2567 ข่าวล่าช้า: สมัคร Replit แบบชำระเงิน / นิสัยการพัฒนาซอฟต์แวร์ที่ดีบทความบล็อกที่เขียนเมื่อวันที่ 29 พฤศจิกายน พ.ศ. 2567 นี้จะแบ่งปันรีวิวการสมัครสมาชิกแบบชำระเงินของ Replit และแนะนำนิสัยการพัฒนาซอฟต์แวร์ที่ดี 10 ประการ ครอบคลุมกลยุทธ์การเขียนโค้ดและการปรับโครงสร้างที่มีประสิทธิภาพ รวมถึงความสำคัญของการทดสอบ
Charles Lee
Charles Lee
Charles Lee
Charles Lee

November 29, 2024

บันทึกการพัฒนา API ของบริษัทหลักทรัพย์ Korea Investment & Securities  และปัญหาที่พบบทความนี้บันทึกปัญหาและขั้นตอนการแก้ไขปัญหาที่พบระหว่างการพัฒนาโปรแกรมเทรดอัตโนมัติโดยใช้ API ของบริษัทหลักทรัพย์ Korea Investment & Securities เนื้อหาจะกล่าวถึงปัญหาต่างๆ เช่น การใช้ Websockets และการตั้งค่ากลยุทธ์การเทรด พร้อมทั้งเปิดรับงานพัฒนาโปรแกรม
(로또 사는 아빠) 살림 하는 엄마
(로또 사는 아빠) 살림 하는 엄마
(로또 사는 아빠) 살림 하는 엄마
(로또 사는 아빠) 살림 하는 엄마

April 23, 2024

[ตอนที่ 3] สร้างเกมเว็บด้วย AI ใน 30 นาทีบทความบล็อกนี้จะแสดงขั้นตอนการสร้างเกมเว็บภายใน 30 นาทีโดยใช้ AI คุณจะได้เห็นกระบวนการแก้ไขบั๊กและเพิ่มฟีเจอร์ใหม่ๆ รวมถึงผลลัพธ์ที่ได้
꼬반
꼬반
꼬반
꼬반

November 8, 2024

ประสบการณ์การมีส่วนร่วมโอเพนซอร์สบทความนี้แบ่งปันประสบการณ์การมีส่วนร่วมโอเพนซอร์ส ช่วยสร้างแรงบันดาลใจให้เอาชนะความกลัวและก้าวแรก เริ่มต้นจากการปรับปรุงเล็กๆ น้อยๆ แล้วค่อยๆ สร้างความมั่นใจและเติบโต
seungwon
seungwon
seungwon
seungwon

May 3, 2025

[8 วัน] สร้างเกมสนุกๆ กับ AIบันทึกการพัฒนาเกม AI วันที่ 8 ครับ ประสบปัญหาในการปรับปรุง UI/UX แต่ได้แก้ไขด้วยการเปลี่ยนเป็นรูปแบบการสลับแถบด้านข้างเพื่อให้เหมาะสมกับสภาพแวดล้อมบนมือถือ ขั้นตอนต่อไปคือการปรับปรุงระบบการต่อสู้และแปลงบันทึกเกมเป็นนิยายโดยใช้ AI ครับ ตรวจสอบได้ที่ ggoba
꼬반
꼬반
꼬반
꼬반

November 14, 2024