Sono un po 'bloccato pensando a come implementare un riduttore in cui le sue entità possono avere figli dello stesso tipo.Come gestire le entità a forma di albero nei riduttori Redux?
Prendiamo commenti reddit come un esempio: ogni commento può commenti bambino han che può avere i commenti stessi ecc Per motivi di semplificazione, un commento è un record di tipo {id, pageId, il valore, i bambini}, con l'essere pageId la pagina di reddit.
Come si modellerebbe il riduttore intorno a questo? Stavo pensando di fare in modo che il riduttore sia una mappa -> id dei commenti dove è possibile filtrare per pagina usando l'ID pagina.
Il problema è che ad esempio quando vogliamo aggiungere un commento ad uno nidificato: dobbiamo creare il record sulla radice della mappa e quindi aggiungere il suo id nella proprietà parent children. Per visualizzare tutti i commenti avremmo bisogno di ottenerli tutti, filtrare quelli che abbiamo in cima (che verrebbero mantenuti nei riduttori di pagine come una lista ordinata per esempio) e poi scorrere su di essi, recuperando dagli oggetti dei commenti quando incontriamo dei bambini che usano ricorsione.
C'è un approccio migliore di quello o è difettoso?
Penso che potresti provare normalizr: https://github.com/gaearon/normalizr Non l'ho usato da solo, quindi non sono sicuro che ti aiuterà nel tuo caso. – Simon
So di normalizzazione, mi chiedo di più se esiste una soluzione "accettata" su come gestirla nei componenti. A meno che non si connetta() ogni commento sarà necessario fare l'opposto di normalizr su ogni cambiamento e anche se lo si connette sembra un po 'un casino –