Селекторҳо ва ҳук useSelector дар Redux
Дар дарсҳои гузашта мо дар store маълумоти маҳсулотро сабт кардем. Чи тавр мо метавонем онҳоро аз store гирем?
Барои ин кор, мо бояд функсия-селектор нависем. Ин функсия медонад, ки чӣ гуна порчаи муайяни маълумотро аз арзиши стейт, ки дар store нигоҳ дошта мешавад, гирад ва ба пешгирии навиштани коди такроршаванда дар вақти афзудани барнома кӯмак мекунад. Дар вуруд ин функсия state-ро қабул мекунад, ва дар хуруҷ порчаи (slice) дархостшудаи стейтро медиҳад. Масалан ин тавр:
const selectValue = state => state.some.value
Дар аввали китоб ёд карда шуд,
ки store усули getState-ро дорад. Ва мо
ба осонӣ метавонистем аз он барои
гирифтани арзиши стейт истифода кунем:
const value = selectValue(store.getState())
Мушкилӣ дар он аст, ки компонентҳои React-и
мо наметавонанд бевосита ба
store дастрасӣ пайдо кунанд, зеро истифодабарияш (import) дар
файли компонент манъ аст. Аммо мо имконият дорем
ки маълумотро дар компонент бо ёрии
ҳуки React-Redux useSelector гирем. Ҳамчунин,
бо ин ҳук компонентҳои мо ҳамеша маълумоти
фақат актуалӣ мегиранд:
const count = useSelector(selectValue)