Jak stworzyć stan współdzielony pomiędzy dwoma komponentami React?
Mam 2 składniki reagujące, które muszą podzielić stan, router reagujący pokazuje komponent, który pobiera dane wejściowe i dodaje je do swojego stanu, po pomyślnym zaktualizowaniu stanu chcę przekierować do komponentu B, w którym użytkownik dodaje wiele danych wejściowych i aktualizuje ten sam stan, co komponent, aby utworzyć obiekt przy użyciu materiałów A i B, zanim wyślę żądanie POST do mojego interfejsu API w celu zapisania danych z obu składników a i B. Jak mogę to zrobić, czy istnieje sposób na użycie reakcja- router czy muszę ustawić relację nadrzędny/podrzędny między komponentami?
Nie znaleziono powiązanych wyników
Zaproszony:
Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się
4 odpowiedzi
Anonimowy użytkownik
Potwierdzenie od:
Na przykład, Redux jest świetną opcją, jeśli planujesz mieć centralny sklep. Jednak możliwe są również inne podejścia:
[/*]
[*]
Od dziecka do rodzica
[/*]
[*]
Rodzeństwo
[/*]
[*]
Każdy do każdego
[/*]
[/list]
Jeszcze
szczegółowe informacje na temat każdego z podejść można znaleźć tutaj
https://www.javascriptstuff.co ... ttern
Anonimowy użytkownik
Potwierdzenie od:
Na przykład możesz stworzyć sklep:
Zarówno instancje , jak i mogą teraz wywoływać w celu przypisania stanu do tego samego sklepu.
zostawiam jako ćwiczenie dla czytelnika.
Zauważ, że zawsze możesz przekazać sam sklep ( ) do komponentów; po prostu czuje się mniej podatny na to.
Oto kilka innych dokumentów, które mogą Cię zainteresować:
Reakcja dokumentów: „Komunikacja między komponentami”
https://facebook.github.io/rea ... tmlDo komunikacji między dwoma komponentami, które nie mają
relację rodzic-dziecko możesz skonfigurować własną globalną
system wydarzeń. Subskrybuj zdarzenia w componentDidMount (), anuluj subskrypcję w
componentWillUnmount () i wywołaj metodę setState () po otrzymaniu zdarzenia.
Wzorzec przepływu jest jednym z możliwych sposobów zorganizowania tego.
Anonimowy użytkownik
Potwierdzenie od:
W przeciwnym razie, jeśli chcesz stworzyć interakcję między dwoma komponentami, które nie są powiązane z żadnym z nich (rodzic/dziecko), możesz zaznaczyć
flux
https://facebook.github.io/flux/
Lub jeszcze lepiej
redux
http://redux.js.org/
.
Powiedziałbym, że powinieneś iść z reduxem.
Zobacz, dlaczego
https://www.quora.com/Should-I ... actJS
Anonimowy użytkownik
Potwierdzenie od:
tutaj
https://github.com/makannew/us ... js... Możesz go użyć, pobierając plik .
Po zaimportowaniu haka zadeklaruj bramę w komponencie Parent i przekaż ją do komponentów podrzędnych
Następnie masz dostęp do stanu współdzielonego między tymi trzema komponentami za pomocą niestandardowego podpięcia useLinkedState
import { useLinkedState } from "use-linked-state";export default function ComponentA({gateway}){ const [state, setState] = useLinkedState(gateway); <your logic>}
Zgodnie z Twoją logiką, i będą odpowiedzialne za swój udział we wspólnym obiekcie .
Na koniec publikuje wynik, jeśli i udostępnionego obiektu były prawidłowe.
W ten sposób możesz komponować komponenty i nawiązywać między nimi połączenia, aby ze sobą rozmawiać.