• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

React js - Obsługa dziedziczonych komponentów

Object Storage Arubacloud
0 głosów
116 wizyt
pytanie zadane 29 maja 2019 w JavaScript przez dawid6512 Gaduła (4,550 p.)
Witam.

Mam 3 komponenty:

Formularz

 -- Pole input

 -- Przycisk submit

Te dwa ostatnie są "dziećmi" komponentu formularz.

Komponent input validuje pod względem emaila i adresem IP, jeżeli nie są poprawne przestawiam state : error na true

I tu pytanie : Jak zobaczyć w komponencie Formularz, że w jednym z komponentów pola input jest state error:true, i jeżeli jest zmień komponent Przycisk submit
komentarz 29 maja 2019 przez JayJay Mądrala (6,020 p.)

To collect data from multiple children, or to have two child components communicate with each other, you need to declare the shared state in their parent component instead. The parent component can pass the state back down to the children by using props; this keeps the child components in sync with each other and with the parent component.

Tutorial: Intro to React - Lifting State Up

 

2 odpowiedzi

+2 głosów
odpowiedź 29 maja 2019 przez Tomek Sochacki Ekspert (227,510 p.)
Niech te komponenty przyjmują przekazują do parenta informację o swoim stanie - w ten sposób w parencie możesz nasłuchiwać na zmiany tych "dzieci" i odpowiednio modyfikować sobie jego state, na podstawie którego robisz np. jakąś całościową walidację.

Szczerze to nie zapinałbym tutaj reduxa, redux moim zdaniem powinien trzymać raczej dane ostateczne, czyli np. info o ogólnej walidacji forma ale i to generalnie często nie jest potrzebne w global store. Jeśli masz jeden lub dwa poziomy w komunikacji parent-child to zostałbym przy propsach. Jeśli tych poziomów byłoby więcej to wg mnie doskonale sprawdzi się tutaj context api, sam korzystam z tego w różnych przypadkach. Warto zawsze szukać rozwiązań do konkretnego problemu, są sytuacje, gdzie lepsze będą propsy, gdzie indziej redux global store a gdzie indziej context.
komentarz 29 maja 2019 przez AdamSiekierski Dyskutant (8,340 p.)
Można by jeszcze skorzystać z React.createRef(). W ten sposób rodzic może podejrzeć state dziecka
komentarz 29 maja 2019 przez Tomek Sochacki Ekspert (227,510 p.)
można, ale ja nie lubię takiej komunikacji. Wolę, jak każda strona "świadomie" informuje o swoich zmianach, latwiej wg mnie się analizuje taki kod i nim zarządza oraz dobrze widać taką komunikację w testach.
–1 głos
odpowiedź 29 maja 2019 przez Mateo13 Bywalec (2,360 p.)
może redux?
komentarz 29 maja 2019 przez kenjiro244 Dyskutant (8,600 p.)
No może to raczej troche przesada żeby do czegoś takiego wykorzystać redux. Ale może przechowuj state: error w komponencie formularz i przesyłaj go do submita.

Podobne pytania

0 głosów
1 odpowiedź 187 wizyt
0 głosów
1 odpowiedź 537 wizyt
pytanie zadane 27 września 2019 w JavaScript przez OzonPo Nowicjusz (120 p.)
0 głosów
1 odpowiedź 110 wizyt
pytanie zadane 15 listopada 2022 w JavaScript przez marek1233211 Nowicjusz (150 p.)

92,565 zapytań

141,416 odpowiedzi

319,596 komentarzy

61,948 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...