Try using it in your preferred language.

English

  • English
  • 汉语
  • Español
  • Bahasa Indonesia
  • Português
  • Русский
  • 日本語
  • 한국어
  • Deutsch
  • Français
  • Italiano
  • Türkçe
  • Tiếng Việt
  • ไทย
  • Polski
  • Nederlands
  • हिन्दी
  • Magyar
translation

นี่คือโพสต์ที่แปลด้วย AI

뚠뚠멍의 생각들

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

เลือกภาษา

  • ไทย
  • English
  • 汉语
  • Español
  • Bahasa Indonesia
  • Português
  • Русский
  • 日本語
  • 한국어
  • Deutsch
  • Français
  • Italiano
  • Türkçe
  • Tiếng Việt
  • Polski
  • Nederlands
  • हिन्दी
  • Magyar

สรุปโดย AI ของ durumis

  • ปัญหาที่เกิดขึ้นในการผสานรวม API ของ Kakao Map ในสภาพแวดล้อมของ create-react-app ใน React 18 ที่แผนที่ไม่แสดงผลเกิดจากส่วนประกอบ React ไม่เข้าถึงวัตถุระดับโลกโดยตรง
  • React ไม่เข้าถึงวัตถุระดับโลกโดยตรงเพื่อการแคปซูล ความสามารถในการทำงานและการจัดการสถานะ และใช้ไลบรารีการจัดการสถานะกลาง เช่น Redux เพื่อควบคุมการไหลของข้อมูล
  • ต่างจาก vue React ให้ความรู้สึกอิสระในโครงสร้างโฟลเดอร์หรือฮุก แต่สำหรับนักพัฒนาที่เพิ่งเริ่มต้นอาจดูยากและการทำโปรเจ็กต์แบบทอยจะช่วยให้คุ้นเคย
  • ปัญหา
  • การแก้ไข
  • สาเหตุ
  • ความรู้สึก


ปัญหา

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

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

** ฉันเขียน HTML แล้ว แต่ไม่เห็นเลย!!

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

<!-- index.html -->
 
<head>
    <script type="text/javascript" src="//dapi.kakao.com/v2/maps/sdk.js?appkey=%REACT_APP_API_KEY%&libraries=services,clusterer,drawing" id="map-lib"></script>
useEffect(() => {
    // โหลดแผนที่    


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


การแก้ไข

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


ทางออกที่ 1-1

ประกาศแอตทริบิวต์ kakao จากวัตถุระดับโลกนอกฟังก์ชันส่วนประกอบ

const { kakao } = window;

function Map() {
    //...


ทางออกที่ 1-2

สร้างฟังก์ชันที่จำเป็นในการแสดงผลแผนที่ Kakao เป็นฮุคแบบกำหนดเองแยกต่างหาก

//hooks/useKakaoMap.js

const { kakao } = window;

function useKakaoMap() {
    const initializeMap = useCallback(() => {
        const container = document.getElementById('map');
        const options = {
        center: new kakao.maps.LatLng(33.450701, 126.570667),
            level: 3
        };
        const newMap = new kakao.maps.Map(container, options);
        setMap(newMap);
    }, []);

    //...    
    
    return {
        initializeMap
    }
}

export default useKakaoMap;

//Map.js

function Map() {
    
    const {
        initializeMap,
    } = useKakaoMap();
    
    useEffect(() => {
        initializeMap();
    }, [initializeMap]);
    
    
    return(
     <div id="map"></div>
    
    )
    


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

แทนที่จะนำไปใช้ภายในส่วนประกอบ

การแยกออกเป็นฮุคแบบกำหนดเองนั้นดีกว่าในแง่ของการนำกลับมาใช้ใหม่หรือความสามารถในการอ่าน


สาเหตุ

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


1) การห่อหุ้มและการเป็นโมดูล

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


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

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


3) การจัดการสถานะจากศูนย์กลาง

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

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


* การแสดงผลแบบเซิร์ฟเวอร์

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


ความรู้สึก

นี่เป็นสิ่งที่ฉันพบในระหว่างโครงการ React แรกของฉัน

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

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


vue มีความรู้สึกอิสระมากกว่าในแง่ของโครงสร้างโฟลเดอร์หรือฮุค ทำให้ยากขึ้น

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

ฉันต้องเรียนรู้เพิ่มเติมโดยเล่นกับโครงการแบบของเล่นอย่างที่มันควรจะเป็น


* นี่เป็นบล็อกแรกของฉัน durumis แปลกและสนุกมาก

นอกจากนี้ยังมีสรุป 3 บรรทัดที่ชาวเกาหลีชอบด้วย ㅋㅋ

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

ฉันต้องการให้ปรับปรุงตัวแก้ไขโค้ดเล็กน้อย


ยินดีต้อนรับการแลกเปลี่ยนความคิดเห็นและข้อเสนอแนะ!

ขอให้มีความสุขในวันนี้!




뚠뚠멍
뚠뚠멍의 생각들
뚠뚠멍의 생각들
뚠뚠멍
กฎพื้นฐานของ CSS (Normal flow, BFC, IFC) การอธิบายแนวคิดของ Normal Flow, BFC และ IFC เพื่อแก้ไขปัญหาที่เกิดขึ้นในระหว่างการจัดวางเลย์เอาต์ CSS บทความนี้จะอธิบายลักษณะเฉพาะและกรณีการใช้งานของแต่ละองค์ประกอบ โดยเฉพาะอย่างยิ่งจะเน้นไปที่วิธีการใช้ BFC เพื่อแก้ไขปัญหาการโต้ตอบระหว่าง float และปัญหาก

7 กันยายน 2567

[React Hook] useState บทความนี้กล่าวถึงสาเหตุที่ React Hook useState ทำให้เกิดการเรนเดอร์ใหม่ของส่วนประกอบทั้งหมดเมื่อทำการเรนเดอร์ใหม่ วิธีการรักษาค่า และคำอธิบายโดยละเอียดเกี่ยวกับโครงสร้างการนำไปใช้ภายใน บทความนี้มีการวิเคราะห์รหัส ReactFiberHooks.js เพื่อทำความเข้าใจวิธีกา
Sunrabbit
Sunrabbit
Sunrabbit
Sunrabbit

14 มีนาคม 2567

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

23 เมษายน 2567

ปัญหาในการพัฒนา API ของ บริษัทหลักทรัพย์เกาหลี โพสต์บล็อกนี้กล่าวถึงปัญหาที่พบในการพัฒนา API ของ บริษัทหลักทรัพย์เกาหลีและวิธีการแก้ไขปัญหาอย่างละเอียด ประกอบด้วยการเปิดบัญชี การโอนบัญชี ISA การจำลองการลงทุนที่ไม่ได้รับการสนับสนุน การรับข้อมูลเรียลไทม์ผ่านเว็บซ็อกเก็ต การทำความเข้าใจวิธีการซื้อขาย ฯลฯ
(로또 사는 아빠) 살림 하는 엄마
(로또 사는 아빠) 살림 하는 엄마
โพสต์บล็อกนี้กล่าวถึงปัญหาที่พบในการพัฒนา API ของ บริษัทหลักทรัพย์เกาหลีและวิธีการแก้ไขปัญหาอย่างละเอียด ประกอบด้วยการเปิดบัญชี การโอนบัญชี ISA การจำลองการลงทุนที่ไม่ได้รับการสนับสนุน การรับข้อมูลเรียลไทม์ผ่านเว็บซ็อกเก็ต การทำความเข้าใจวิธีการซื้อขาย ฯลฯ
(로또 사는 아빠) 살림 하는 엄마
(로또 사는 아빠) 살림 하는 엄마

23 เมษายน 2567

ความสำคัญของเมตาแท็กใน SEO และเมตาแท็กที่มีความสำคัญลดลง เมตาแท็กเป็นองค์ประกอบที่จำเป็นสำหรับเครื่องมือค้นหาในการทำความเข้าใจและจัดทำดัชนีเว็บไซต์ของคุณ แท็กชื่อเรื่อง แท็กคำอธิบายเมตา แท็กหุ่นยนต์ ฯลฯ สามารถนำมาใช้เพื่อเพิ่มการแสดงผลในหน้าผลลัพธ์ของเครื่องมือค้นหา (SERP) และให้ข้อมูลที่น่าสนใจแก่ผู้ใช้
꿈많은청년들
꿈많은청년들
ภาพที่มีข้อความว่า MetaTag
꿈많은청년들
꿈많은청년들

27 พฤษภาคม 2567

คำถามที่พบบ่อย durumis เป็นบริการเบต้าฟรีที่ให้บริการฟีเจอร์ต่างๆ เช่น การแปลอัตโนมัติ การสรุป และการสร้างหัวข้อหลังจากเขียนบทความแล้ว ปัจจุบันยังไม่รองรับการเขียนบทความบนมือถือ และฟีเจอร์อื่นๆ เช่น คอมเมนต์ การเผยแพร่ตามกำหนด และการรายงาน จะมีการอัปเดตในภายหลัง
durumis official blog
durumis official blog
ภาพที่เขียนว่า FAQ
durumis official blog
durumis official blog

24 มกราคม 2567

[Observability] เครื่องมือ Vector สำหรับรวบรวมล็อก Vector เป็นเครื่องมือรวบรวมและประมวลผลล็อกที่พัฒนาโดย DataDog เขียนด้วย Rust ทำให้การเขียนโค้ดการแปลงล็อกง่ายกว่า Otel และรองรับการรวมกับ Loki ในสภาพแวดล้อม Kubernetes โดยใช้ Helm อย่างไรก็ตาม อาจพบปัญหาในการใช้งาน เช่น เอกสารอย่างเป็นทางการที่ไม่ได้ รับก
Sunrabbit
Sunrabbit
Vector เป็นเครื่องมือรวบรวมและประมวลผลล็อกที่พัฒนาโดย DataDog เขียนด้วย Rust ทำให้การเขียนโค้ดการแปลงล็อกง่ายกว่า Otel และรองรับการรวมกับ Loki ในสภาพแวดล้อม Kubernetes โดยใช้ Helm อย่างไรก็ตาม อาจพบปัญหาในการใช้งาน เช่น เอกสารอย่างเป็นทางการที่ไม่ได้ รับก
Sunrabbit
Sunrabbit

9 มีนาคม 2567