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

ReferenceInput beágyazott CheckBoxGroupInput furcsán viselkedik

Sok órán keresztül nézelődtem, és különféle dolgokat próbáltam, de a CheckBoxGroupInputhoz látott példák közül sok egyszerűen csak egy kemény kódolt listát tartalmaz a választásokról, ami egy kicsit haszontalan... Az a forgatókönyvem, hogy van egy listám azokról a címkékről, amelyeket szeretnék hogy egy termékhez tudjunk társulni, elég gyakori dolgok..

azt a listát le kell kérnem a postgres adatbázisból... és úgy tűnik, hogy ez a rész működik, és a listám normálisnak tűnik, amikor először megjelenik a react-admin létrehozási képernyőjén... A vezérlő az alábbiak szerint néz ki

<ReferenceInput reference="ProductRealBenefit" source="realbenefits" sort={{ field: 'name', order: 'ASC' }}>
     <CheckboxGroupInput source="name" />                                                      
</ReferenceInput>

Eddig minden jó és jó..

a listámat a vártnak megfelelően jeleníti meg. A sémám a ra_data_graphql_simple formátuma szerint van beállítva... A váratlan dolog az, hogy amint rákattintok az egyik címkére, azonnal kérést küld a szerver az allProductRealBenefit lekérdezéshez, amelynek szűrőértéke megegyezik a kattintott azonosítóval, és hozzáadja a kattintott címke egy példányát a listához, ami megtöri a vezérlőt duplikált kulcs hibával... nem értem, miért küldene el egy Mindenesetre a kattintás után kérem, nem próbálok semmit elmenteni, csak össze kell állítani, hogy mely címkék kerüljenek kiküldésre az űrlapadatokkal a hivatkozásrekordok létrehozásához, és ezek az adatok már megvannak a vezérlő kezdeti feltöltése után.

Azt hiszem, ezt talán nem kellene beágyazni a ReferenceInputba, de nem látok más módot arra, hogy a választásaimat feltöltsem az adatbázis-lekérdezés eredményével. Tudom, hogy ez nevetségesen elterjedt funkció, és ki kell találnom egy módot, hogy ezt több helyen is használhassam, mert ennek a címkézési funkciónak több forrásban is elérhetőnek kell lennie. Kipróbáltam ezt az AutocompleteArrayInput segítségével is, és hasonló problémák voltak, így tudom, a probléma az, hogy biztosan lemaradok egy fontos lépésről... Legyen nagyszerű, ha valaki tud mutatni a helyes irányba. egyenlőre visszamegyek a dokihoz, hogy megnézzem, mit tudok kiásni!


  • Ugyanez a problémám van most a jelölőnégyzetekkel. Az Ön megoldása nem működött számomra (egy REST szolgáltatóval küszködök), ezért kívánok szerencsét, hogy felismerjem, mi történik, amikor rákattintok az egyikre. Köszönöm, hogy feltetted ezt a kérdést és a választ is. 27.10.2020

Válaszok:


1

Rendben, válaszolok még egy kérdésemre, hátha valaki ugyanolyan fejjel landol itt, mint én, amikor megkérdeztem... Egyszerűen nem értettem, mit csinál a kulisszák mögötti varázslat, ezért ezt használtam rossz... És a dokikat zavarónak találom

A fenti példámban... a hivatkozásban szereplő ProductRealBenefits-em egy a sokhoz kapcsolat volt a sémámban valós haszonnal ábrázolva: [ProductRealBenefits]... Ezért szükségem volt a következő összetevőkre.

<ReferenceArrayInput label="Real Benefit Tags" source="realbenefitsIds" reference="ProductRealBenefit">
    <CheckboxGroupInput  optionValue="id" optionText="name" allowEmpty />
</ReferenceArrayInput>

Van egy kis varázslat a ra_data_graphql_simple dataProviderben, amely létrehoz egy elemet az Ön számára realbenefitsIds nevű állapotban, amit a ReferenceArrayInput forrásaként használ, én a tényleges realbenefits tömbobjektumot próbáltam használni, de ez nem működött. Nem találtam semmi jó példát, vagy semmi tisztességes magyarázatot arra vonatkozóan, hogyan lehetne ezt működésbe hozni... Szóval végül a Redux Dev Tools mentette meg a szalonnám. Át kellett ugranom a grafikonszerveren, hogy mindez működjön úgy, hogy az adatszolgáltató a GET_MANY és GET_REFERENCE_MANY szűrőértékek közötti különbségeket küldi vissza, de ez csak a szűrőértékek elemzése volt, hogy megfeleljenek a várt folytatásnak. Végül írok egy dataProvider-t, de ez most megfelel a számnak.

Ui.. Valami furcsa viselkedést láttam a CheckboxGroupInput-omban, amikor rákattintottam valamire, az megkettőzte azt a négyzetet, amelyre rákattintottak... Ennek oka egy objektumtípus-hiba volt a sémámban... Volt egy Int< /strong> keverve az ID-vel, és szerencsére ez megjelent a Redux Dev Toolsban, és a problémához vezetett.

Végül összeállítok egy mintaprojektet a Githubban, amely a React-Admin, a GraphQL, a RA_DATA_GRAPHQL_SIMPLE, a Sequelize és a Postgres Database programokat fogja használni, és sokat fogok hozzá kommentálni, hogy a hozzám hasonlók számára elkerüljem a zavart. .. Egészségére!!

13.03.2019
  • És most egy pozitív szavazat és egy megjegyzés: működik. Elfelejtettem módosítani a ReferenceInput-t ReferenceArrayInput-ra. Még mindig nem értem a ${RESOURCE}Ids belső működését, de ennek ellenére egy lépéssel előrébb vagyok. Kösz! 28.10.2020
  • Ó, jó, most láttam ezt, és éppen arra készültem, hogy visszamenjek és megnézzem neked... örülök, hogy sikerült!! Egészségére 28.10.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..


    © 2024 webhu.ru, WebHU - Programozási kérdések és válaszok