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

Questo è un post tradotto da IA.

뚠뚠멍의 생각들

React - kakao non definito: come risolverlo

Seleziona la lingua

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

Testo riassunto dall'intelligenza artificiale durumis

  • Il problema che si verifica quando si integra l'API di Kakao Map in un ambiente React 18 con create-react-app, che impedisce il rendering della mappa, è dovuto al fatto che i componenti React non accedono direttamente agli oggetti globali.
  • React evita l'accesso diretto agli oggetti globali per motivi di incapsulamento, prestazioni e gestione dello stato, e utilizza librerie di gestione dello stato centralizzato come Redux per controllare il flusso dei dati.
  • A differenza di Vue, React offre una sensazione di libertà nella struttura delle cartelle, negli hook e in altre aree, ma può essere difficile per i sviluppatori alle prime armi. È una buona idea familiarizzare con React attraverso progetti giocattolo.
  • Problema
  • Soluzione
  • Motivo
  • Riflessioni


Problema

Durante l'integrazione dell'API di Kakao Map in un ambiente React 18, create-react-app, la mappa non è stata renderizzata!

Ho inserito il tag script all'interno del tag head, quindi pensavo che sarebbe stato caricato prima che il browser lo renderizzasse.

**Ho scritto l'HTML ma non si vede!!**

~qualcosa come il codice per caricare Kakao Map all'interno del tag head di 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(() => {
    // map 불러오기    


Tuttavia, nella console è stato registrato solokakao non è definitoe non è stato renderizzato nulla.


Soluzione

Fondamenti: i componenti React non accedono direttamente agli oggetti globali.


Soluzione 1-1

Dichiarare l'attributo kakao dall'oggetto globale al di fuori della funzione del componente.

const { kakao } = window;

function Map() {
    //...


Soluzione 1-2

Creare hook personalizzati per le funzioni necessarie per il rendering di Kakao Map.

//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>
    
    )
    


Eventi di trascinamento, eventi di clic, gestione dei marker, ecc., ovvero le funzionalità normalmente necessarie per la mappa,

sono generalmente implementate all'interno del componente,

ma è meglio separarle in hook personalizzati per migliorare la riutilizzabilità e la leggibilità.


Motivo

Il motivo per cui React non accede agli oggetti globali: è necessario comprendere il concetto di React.


1) Incapsulamento e modularità

- Ogni componente deve essere indipendente e riutilizzabile. Se si fa affidamento su oggetti globali in numerosi componenti, si perde l'indipendenza e la complessità aumenta.


2) Prestazioni e facilità di manutenzione

- React ri-renderizza quando lo stato cambia, ma gli oggetti globali non sono adatti al monitoraggio dei cambiamenti di stato.


3) Gestione dello stato centralizzata

- Se è necessario condividere diverse variabili, utilizzare librerie di gestione dello stato centralizzate come Redux.

Centro -> si controlla il flusso dei dati verso i componenti per evitare errori e semplificare la manutenzione.


* Rendering lato server

Recentemente, il rendering lato server è diventato sempre più popolare per la SEO (ottimizzazione per i motori di ricerca), ma l'oggetto window non è accessibile sul lato server!!


Riflessioni

Questo è un problema che ho incontrato durante il mio primo progetto React.

Ho lavorato con Vue per oltre 2 anni, ma all'inizio del mio progetto React,

sono rimasto piuttosto sorpreso di non riuscire a visualizzare Kakao Map...!!!


Rispetto a Vue, la struttura delle cartelle e gli hook sono un po' più liberamente definiti, il che rende le cose più difficili.

Mi chiedo spesso quale sia il modo più efficiente per scriverlo.

Dovrò imparare di più giocando con questo progetto di giocattolo.


* Questo è il mio primo blog, ma durumis è piuttosto unico e divertente.

Fornisce anche un riepilogo di 3 righe che piace agli utenti coreani ㅋㅋ

Potrei anche incontrare sviluppatori stranieri?

L'editor di codice potrebbe essere migliorato.


Sono aperte a discussioni e critiche~!

Spero che tu abbia una buona giornata!




뚠뚠멍
뚠뚠멍의 생각들
뚠뚠멍의 생각들
뚠뚠멍
Regole di base CSS (Normal flow, BFC, IFC) Per risolvere i problemi che sorgono nella configurazione del layout CSS, viene spiegato il concetto di Normal Flow, BFC e IFC, e vengono presentate le caratteristiche e gli esempi di applicazione di ciascun elemento. In particolare, viene approfondito il

7 settembre 2024

[React Hook] useState Questo articolo descrive in dettaglio il motivo per cui il gancio useState di React rirenderizza l'intero componente durante il rirendering, come mantenere i valori e la struttura di implementazione interna. L'analisi del codice ReactFiberHooks.js ti aiut
Sunrabbit
Sunrabbit
Sunrabbit
Sunrabbit

14 marzo 2024

Documentazione degli errori riscontrati nello sviluppo dell'API di Korea Investment Securities Questo articolo di blog è destinato agli sviluppatori che desiderano creare programmi di trading automatico utilizzando l'API di Korea Investment Securities. Vengono presentate le difficoltà incontrate durante lo sviluppo, come l'apertura di un conto, il
(로또 사는 아빠) 살림 하는 엄마
(로또 사는 아빠) 살림 하는 엄마
Questo articolo di blog è destinato agli sviluppatori che desiderano creare programmi di trading automatico utilizzando l'API di Korea Investment Securities. Vengono presentate le difficoltà incontrate durante lo sviluppo, come l'apertura di un conto, il
(로또 사는 아빠) 살림 하는 엄마
(로또 사는 아빠) 살림 하는 엄마

23 aprile 2024

Storia dello sviluppo del progetto LegiNote 3 - Request in Go Nella parte 2 dello sviluppo del progetto secondario LegiNote, affrontiamo in dettaglio lo sviluppo di 'worker-bill', che raccoglie informazioni sulle leggi utilizzando l'API OpenAPI del Parlamento. Spiegheremo in dettaglio il processo di sviluppo, inclus
statpan
statpan
Nella parte 2 dello sviluppo del progetto secondario LegiNote, affrontiamo in dettaglio lo sviluppo di 'worker-bill', che raccoglie informazioni sulle leggi utilizzando l'API OpenAPI del Parlamento. Spiegheremo in dettaglio il processo di sviluppo, inclus
statpan
statpan

26 agosto 2024

Sviluppo dell'API di Korea Investment Securities: difficoltà incontrate Questo post del blog tratta in dettaglio le difficoltà incontrate durante lo sviluppo dell'API di Korea Investment Securities e le relative soluzioni. Condivide l'esperienza e i suggerimenti di uno sviluppatore in merito all'apertura di un conto, al trasf
(로또 사는 아빠) 살림 하는 엄마
(로또 사는 아빠) 살림 하는 엄마
Questo post del blog tratta in dettaglio le difficoltà incontrate durante lo sviluppo dell'API di Korea Investment Securities e le relative soluzioni. Condivide l'esperienza e i suggerimenti di uno sviluppatore in merito all'apertura di un conto, al trasf
(로또 사는 아빠) 살림 하는 엄마
(로또 사는 아빠) 살림 하는 엄마

23 aprile 2024

Raccolta di FAQ relative alla scrittura di articoli Consulta le domande frequenti e le risposte relative all'utilizzo dello strumento di scrittura di blog durumis AI per creare articoli. Sono incluse informazioni su varie funzioni come l'interruzione di riga, il carattere, il titolo, la descrizione dell'im
durumis official blog
durumis official blog
Immagine con FAQ
durumis official blog
durumis official blog

25 gennaio 2024