Selektory a hook useSelector v Redux
V předchozích lekcích jsme uložili do store data produktů. Jak je můžeme získat z store?
Abychom to mohli udělat, musíme napsat funkci-selektor. Tato funkce ví, jak extrahovat konkrétní část informací z hodnoty stavu uložené v store a pomáhá zabránit psaní opakujícího se kódu při rozrůstání aplikace. Na vstupu tato funkce přijímá state, a na výstupu vydá potřebný slice stavu. Například takto:
const selectValue = state => state.some.value
Na samém začátku učebnice bylo zmíněno,
že store má metodu getState. A my
bychom ji snadno mohli použít pro
získání hodnoty stavu:
const value = selectValue(store.getState())
Problém spočívá v tom, že naše React
komponenty nemohou přímo přistupovat k
store, protože je zakázáno jej importovat
do souboru komponenty. Ale máme možnost
získat data v komponentě pomocí
React-Redux hooku useSelector. Navíc,
s tímto hookem naše komponenty budou vždy dostávat
pouze aktuální data:
const count = useSelector(selectValue)