Od paru dni borykam się z tym, próbując znaleźć sposób "zareagowania", aby to zrobić.Jak zarządzać stanem w komponencie drzewa w reactjach
Zasadniczo mam drzewo, listę list (list ...), które można dowolnie zagnieżdżać, i chcę element, który to wyświetli, a także umożliwi przegrupowanie.
Oto moje dane:
var data = [{
id: 1
}, {
id: 2, children: [
{
id: 3, children: [{id: 6}]
}, {
id: 4
}, {
id: 5
}]
}]
Mój pierwszy przebieg był po prostu mieć jeden „zielony” komponent, który buduje zagnieżdżonych list elementów DOM w jego nadania funkcji (look at the code here). To faktycznie działało całkiem dobrze dla niewielkiej liczby elementów, ale chcę móc obsługiwać setki elementów, a koszt był bardzo wysoki, gdy element został przesunięty wewnątrz drzewa (~ 600ms, gdy było ich kilkaset elementy).
Więc myślę, że każdy z "węzłów" drzewa będzie jego własną instancją tego komponentu. Ale tutaj jest moje pytanie (przepraszam za długie wprowadzenie):
Czy każdy węzeł dynamicznie zapytać o listę to identyfikatory dzieci z centralnej "bazy danych" i przechowywać je w stanie? A może najwyższy węzeł powinien załadować całe drzewo i przekazać wszystko przez rekwizyty?
Nadal staram się zawinąć w moim umyśle, w jaki sposób należy obsługiwać podpory & & podzielone.
Dzięki
Wszystko tutaj jest drzewem, prawda?Możesz ponownie użyć komponentu Drzewo, aby mieć drzewa Drzew, zamiast traktować je jako najwyższy poziom. Nie próbowałem renderowania rekursywnego, ale powinno działać. Dla każdego komponentu Drzewo wyrenderuj jego bezpośrednie dzieci i przekazuj te dzieci ich dzieciom itd. Upewnij się też, że ustawiłeś atrybut 'klucz' na komponentach w pętli, aby React mógł je śledzić. –
o atrybut "klucz"? Nie widziałem tego nigdzie w dokumentach. Wypróbuję to. –
Atrybut "klucz" nie jest widoczny, ale jest wspomniany w [Dynamicznych dzieciach] (http://facebook.gitub.io/react/docs/multiple-components.html#dynamic-children) sekcja dokumentacji składników. –