WebHU - Programozási kérdések és válaszok

Hogyan oszthatom meg ugyanazt az űrlapot egy objektum létrehozásához és frissítéséhez relay-modern (kísérleti) módban?

Új vagyok a közvetítésben, és megpróbálom a modern kísérleti közvetítést párhuzamos módban használni. A Suspense és ErrorBoundary segítségével remekül tudtam betölteni a csomópontokat, éleket stb. Most egy űrlapon dolgozom egy objektum létrehozásához és frissítéséhez.

Nem tudok rájönni, hogyan használjam ugyanazt az űrlapot a létrehozási és szerkesztési esetekhez, mivel nem tudom betölteni a töredéket a Create esetben – ahol az űrlapmezők kezdeti értékei alapértelmezettre vannak állítva. Nem lenne mit átadnom a useFragmentnek a create esetben.

Hogyan hozhatok létre olyan kezdeti értéket, amely megfelel az űrlaphoz szükséges töredékdefiníciónak? Lehet, hogy van egy minta, amivel nem vagyok tisztában. Biztos hiányzik valami. Nem szeretném megkettőzni az űrlap felhasználói felület összetevőjét.


Válaszok:


1

Szerintem nincs értelme a Relay tárolót használni űrlapok mozgatására a Reactban, mert ez nagyon bonyolult: Például a create esetben az űrlap adatait egy ideiglenes azonosítóra kell írnia, amelyet a azonosítsa a csomópontot az áruházban, majd mondja meg a töredéktárolónak, hogy olvassa be a csomóponton lévő mezőket. Ezután mind a létrehozási, mind a szerkesztési esetben az űrlapbeviteli módosítási eseménykezelőben frissítse a csomópontot a commitLocalUpdate() API. Ez nagyon bonyolulttá válik.

Egy sokkal egyszerűbb minta az űrlapok szerkesztéséhez, akár új csomópontot hoz létre, akár egy meglévő csomópontot szerkeszt, az űrlapot a React komponens állapotával (useState()) állítja be, majd továbbra is (létrehoz vagy frissít) a Relay segítségével, amikor kész a szerkesztés. Meglévő csomópont szerkesztése esetén a Relay tárolóból elágazik az állapot, módosítja az űrlappal, majd megőrzi. Majd amikor a mutáció befejeződik, frissíti az áruházat egy updater függvényen keresztül, vagy a mezőket a mutációs válaszban.

17.10.2020
  • Ha többet dolgozunk ezzel, úgy gondolom, hogy ez teljesen igaz. Köszönöm! 03.11.2020
  • Egy kapcsolódó kérdés – a relé fordító által kibocsátott TypeScript típusokat használom. Látom, hogy a töredékek hogyan generálnak típusokat, de úgy tűnik, hogy külön TypeScript típusokat kell létrehoznom, ha a továbbításon kívüli csomópontokkal akarok dolgozni. Például, ha információkat adok hozzá, amikor csomópontokat helyezek el a vászonban. Van ennek jobb módja a külön típusokon kívül? 03.11.2020
  • Örülök, hogy segíthettem. Sok időt töltöttem azzal, hogy megpróbáltam kiszorítani a formákat a Relay Store-ból, mire rájöttem, hogy valószínűleg nem ez a helyes út. RE: TS, sajnos soha nem volt alkalmam Relay-vel használni, így nem tudom, milyen típusokat bocsát ki (ironikus módon mostanában az Apollo TS generátort használom, és kíváncsi voltam, hogyan változnak a kibocsátott típusok a Relay által kibocsátottak közül). De ami a TS típusok kiterjesztését illeti általában... Szerintem a lehetőségek a következők: (i) új interfész létrehozása, amely extends Relay típusú, (ii) új típus létrehozása és & használata a Relay által generálton, (iii) nyilatkozat összevonása 03.11.2020
  • Új anyagok

    A rádiógomb ellenőrzött eseményének használata a jQueryben
    Ebben a cikkben látni fogjuk, hogyan kell dolgozni a jquery választógombbal ellenőrzött eseményeivel. A választógombok HTML gombok, amelyek segítenek kiválasztani egyetlen értéket egy csoportból...

    Körkörös függőségek megoldása terraformban adatforrásokkal – lépésről lépésre
    Mi az a körkörös függőségek Dolgozzunk egy egyszerű eseten, amikor az SQS-sor és az S3-vödör közötti körkörös függőség problémája van egy egymástól függő címkeérték miatt. provider..

    Miért érdemes elkezdeni a kódolást 2023-ban?
    01100011 01101111 01100100 01100101 — beep boop beep boop Világunk folyamatosan fejlődik a technológia körül, és naponta fejlesztenek új technológiákat a valós problémák megoldására. Amint..

    🎙 Random Noise #2  – Örökbefogadás és hit
    az analitika íratlan világának gondozása Szeretné, hogy ezek a frissítések a postaládájába kerüljenek? Iratkozzon fel itt . "Ha önvezető autókat gyártanak, akkor mi miért ne..

    A legrosszabb politika és prediktív modellek májátültetésre jelöltek számára az Egyesült Államokban
    A máj (vagy óangolul lifer) az emberi test legnehezebb belső szervére utal, amely csendesen működik a nap 24 órájában. Mit csinál a máj? 500 feladatot hajt végre a szervezet egészségének..

    5 webhely, amely 2022-ben fejleszti front-end fejlesztői készségeit
    Frontendmentor.io A tényleges projektek létrehozásával a Frontendmentor.io segítséget nyújt a front-end kódolási képességeinek fejlesztésében. A kódolást azután kezdheti meg, hogy..

    Mikor kell használni a Type-t az interfészhez képest a TypeScriptben?
    A TypeScript a JavaScript gépelt szuperkészlete, amely statikus gépelést ad a nyelvhez. Ez megkönnyíti a robusztus és karbantartható kód írását azáltal, hogy a hibákat a fordítási időben..