Selektory a hook useSelector v Redux
Na predchádzajúcich lekciách sme uložili do store dáta produktov. Ako ich môžeme získať z store?
Aby sme to mohli urobiť, musíme napísať funkciu-selektor. Táto funkcia vie, ako extrahovať konkrétny kúsok informácií z hodnoty stavu uloženého v store a pomáha vyhnúť sa písaniu opakujúceho sa kódu pri raste aplikácie. Na vstupe táto funkcia prijíma state, a na výstupe vracia potrebný slice stavu. Napríklad takto:
const selectValue = state => state.some.value
Na úplnom začiatku učebnice sa spomínalo,
že store má metódu getState. A my
by sme ju mohli jednoducho použiť na
získanie hodnoty stavu:
const value = selectValue(store.getState())
Problém je v tom, že naše React
komponenty nemôžu priamo pristupovať k
store, pretože je zakázané importovať ho
do súboru komponenty. Ale máme možnosť
získať dáta v komponente pomocou
React-Redux hooku useSelector. Navyše,
s týmto hookom naše komponenty budú vždy dostávať
len aktuálne dáta:
const count = useSelector(selectValue)