Селектары і хук useSelector у Redux
На мінулых уроках мы запісалі ў store дадзеныя прадуктаў. Як жа нам атрымліваць іх з store?
Для таго, каб гэта зрабіць, нам неабходна напісаць функцыю-селектар. Гэтая функцыя ведае, як здабыць пэўны кавалак інфармацыі з значэння стэйту, які захоўваецца ў store і дапамагае пазбегнуць напісання паўтаральнага кода пры разрастанні прыкладання. На ўваход гэтая функцыя прымае state, а на выхадзе выдае неабходны слайс стэйту. Напрыклад так:
const selectValue = state => state.some.value
У самым пачатку падручніка згадвалася пра тое,
што ў store ёсць метад getState. І мы
б лёгка маглі ім скарыстацца для
атрымання значэння стэйту:
const value = selectValue(store.getState())
Праблема заключаецца ў тым, што нашы React
кампаненты не могуць непасрэдна звяртацца да
store, паколькі яго забаронена імпартаваць
у файл кампанента. Але ў нас ёсць магчымасць
атрымаць дадзеныя ў кампаненце з дапамогай
React-Redux хука useSelector. Да таго ж,
з гэтым хукам нашы кампаненты будуць заўсёды атрымліваць
толькі актуальныя дадзеныя:
const count = useSelector(selectValue)