Селектары і хук useSelector у Redux

На мінулых уроках мы запісалі ў store дадзеныя прадуктаў. Як жа нам атрымліваць іх з store?

Для таго, каб гэта зрабіць, нам неабходна напісаць функцыю-селектар. Гэтая функцыя ведае, як здабыць пэўны кавалак інфармацыі з значэння стэйту, які захоўваецца ў store і дапамагае пазбегнуць напісання паўтаральнага кода пры разрастанні прыкладання. На ўваход гэтая функцыя прымае state, а на выхадзе выдае неабходны слайс стэйту. Напрыклад так:

jsxconst selectValue = state => state.some.value

У самым пачатку падручніка згадвалася пра тое, што ў store ёсць метад getState. І мы б лёгка маглі ім скарыстацца для атрымання значэння стэйту:

jsxconst value = selectValue(store.getState())

Праблема заключаецца ў тым, што нашы React кампаненты не могуць непасрэдна звяртацца да store, паколькі яго забаронена імпартаваць у файл кампанента. Але ў нас ёсць магчымасць атрымаць дадзеныя ў кампаненце з дапамогай React-Redux хука useSelector. Да таго ж, з гэтым хукам нашы кампаненты будуць заўсёды атрымліваць толькі актуальныя дадзеныя:

jsxconst count = useSelector(selectValue)