Селекторлар ва Redux-даги useSelector хук
Олдинги дарсларда биз store-га маҳсулотлар маълумотларини ёздик. Уларни store-дан қандай оламиз?
Буни амалга ошириш учун бизга функция-селектор ёзиш керак. Бу функция store-да сақланаётган стейт қийматидан маълум бир маълумот бўлагини қандай олишни билади ва илова ўсиб бораётганда такрорланувчи код ёзишнинг олдини олишта ёрдам беради. Кириш сифатида бу функция state-ни олади, чиқиш сифатида эса керкли стейт слайсини берadi. Масалан шундай:
const selectValue = state => state.some.value
Дарсликнинг бошларида store-да getState усули
борлиги ҳақида гапирилган эди. Ва биз
стейт қийматини олиш учун ундан осонгина
фойдаланишимиз мумкин эди:
const value = selectValue(store.getState())
Муаммо шундаки, бизнинг React
компонентларимиз store-га тўғридан-тўғри мурожаат қила олмайди,
чунки уни компонент файлига импорт қилиш
ман этилган. Лекин бизда
React-Redux-нинг useSelector хуки ёрдамида компонентда
маълумот олиш имконияти мавжуд. Ундан ташқари,
ушбу хук билан бизнинг компонентларимиз ҳар доим
фақат актуал маълумотларни олади:
const count = useSelector(selectValue)