React jak odwołać się do komponentu (z komponentu wyżej )który jest niżej gdzieś zagnieżdżony

0

np.
----WrpComponent
-------- childComponent
-------------- grandCHildComponent
-------------- grandCHildComponent
----------------------grandgrandCHildComponent

i np. chciałbym z wrpComponent dostać jakąś informację o grandgrandCHildComponent, np. jaką ma szerokość?

0

to raczej grandgrandCHildComponent mówi do WrpComponent o swojej szerokości
https://pl.reactjs.org/docs/context.html

2

Masz kilka opcji.

  1. piszesz w rodzicu funkcję callback, którą przekazujesz przez propsy w dół drzewa do dziecka. Następnie w oczekiwanym momencie wołasz tę funkcję i dzięki temu rodzic dostaje dane wprost od dziecka.
  2. używasz reduxa lub innej biblioteki do zarządzania stanem.
  3. używasz hooka useState w react od wersji 16.8+
1

Myślę, że wybór odpowiedniej opcji jak zawsze, zależy od konkretnego problemu.

i np. chciałbym z wrpComponent dostać jakąś informację o grandgrandCHildComponent, np. jaką ma szerokość?

Jeśli chodzi o szerokość, to tutaj oprócz sposobów, o których mój przedmówca napisał (odnośnie komunikacji wewnątrz-reactowej) pewnie byłaby nawet możliwość użycia CSS (np. odpowiedni layout zamiast liczenia szerokości na pałę) bądź wywołań w JavaScript bezpośrednio do DOM, jeśli chodzi o szerokość ( https://developer.mozilla.org/en-US/docs/Web/API/Element/getBoundingClientRect )

Jednak rodzą się pytania

  • czy dobrze zdefiniowałeś problem? Jaki jest twój właściwy problem (jak odwołać się do komponentu (z komponentu wyżej )który jest niżej gdzieś zagnieżdżony to nie wygląda na problem "biznesowy", a jedynie na szczegół implementacyjny rozwiązania jakiegoś większego problemu).
  • czy dobrze zaprojektowałeś podział na komponenty (że w ogóle masz potrzebę dostawać się z komponentu wyżej do komponentu ileś poziomów niżej? To pachnie jak zły podział na komponenty. Chociaż niekoniecznie, być może jest jakieś uzasadnienie na to).

1 użytkowników online, w tym zalogowanych: 0, gości: 1