Próbuję utworzyć niestandardowy komponent checkbox (właściwie trzy-stan, ale to nie ma znaczenia, z wyjątkiem tego, że mówię, że nie używam tylko INPUT), i nie jestem pewien, jak mogę to zrobić zmienić "sprawdzanie" na podstawie kliknięć na siebie i na zestawie wartości schodzących z rodzica.Jak zarządzać stanem na komponencie React, który może zmienić stan z elementu nadrzędnego lub zdarzenia na nim?
Obecnie pracuję jako samowystarczalny komponent, który pobiera protokół onChange z wywoływanym zwrotem procedury obsługi, który wywołuje, aby wysłać wartość komponentu nadrzędnego po kliknięciu. Używa stanu do przechowywania sprawdzania, do którego odwołuje się wyświetlacz.
Jeśli był to tylko wyświetlacz z kontrolą, z wartością zarządzaną z zewnątrz, oczywiście używałbym rekwizytów. Gdyby był to samowystarczalny element pola wyboru, który przyjąłby wartość początkową, a następnie odpowiadał tylko na kliknięcia, użyłbym stanu, tak jak ja, ale moim problemem jest to, że chcę, aby można było je włączać i wyłączać, a także pozwól rodzicowi również go włączyć i wyłączyć.
Jestem początkujący w React i "React way of thinking", więc podejrzewam, że właśnie zbliżam się do tego błędu. Odnoszę wrażenie, że właściwym sposobem na zrobienie tego będzie to, że jest to komponent tylko do wyświetlania, który przekazuje kliknięcia rodzicowi, aby mógł sobie z nim poradzić, a następnie otrzymywał aktualizacje rekwizytów dla zmian wartości od rodzica, ale to spowodowałoby, że komponent byłby o wiele mniej przydatny do ponownego użycia.
W jaki sposób chciałbym zmienić pole wyboru zarówno ze źródeł wewnętrznych, jak i macierzystych?
Odpowiednie linki są również mile widziane.
Tak, to brzmi jak to, co muszę zrobić. Zaczynam poruszać moje myślenie od moich starych pomysłów "brygady kubełkowej" (gdzie dane są rozpatrywane w razie potrzeby przez indywidualny komponent) do bardziej "centralnego punktu kontrolnego" pomysłu, którego używa React. Po prostu nie zdawałem sobie sprawy, że filozofia jest tak wszechogarniająca, co było moim zawieszeniem. I dzięki za linki do artykułów. – SuperFLEB