Wpis z mikrobloga

Witam mam pytanie.

Mam duży komponent podzielony na mniejszy. Tablica drag / drop - coś ala trello - mniejsza z tym.

Używam useState bez contextu.

mam funkcję która usuwa item. deleteItem(itemInd, colInd) => { body function }

w funkcji deleteItem używam destrukt żeby podmienić state, oczywiście niemutowalnie.

Komponent podzielony jest na 3 mniejsza - w przypadku mojego problemu taka wiedza wystarczy.

Board > column > item w Board jest jakiś wbudowany context do komunikacji dragDrop - to tez mało ważne.

Jak najlepiej przekazać funkcję delete do Itemu.

1) deklarować w środku komponentu funkcyjnego i przekazywać ją dwa poziomy niżej do taskItemu. Wtedy mam tylko 2 argumenty IndexITem i IndColumn.

2) deklarować ją poza komponentem funkcyjnym np wyżej lub jako helper. Wtedy jako argument potrzbuje też swoje useState body przekazane do argumentu więc argumentów mam 4 ?

Dodatkowy problem. colInd znam dopiero przy wyplutym column w funkcji map. Więc po drodze powinienem zrobić bind funkcji z argumentem ?

3) #!$%@?ć to i zrobić to po ludzku na ContextHooku
4) #!$%@?ć to i zrobić to na reduxie

Pytanie mogłoby się tyczyć innego przykładu, głównie chodzi mi o to że aby odalić tą funkcję muszę mieć też dostęp do setState ba nawet do samego state bo musze destrukturyzować bieżącą kolumnę.

#react #programowanie
  • 4