Селекторлар ва Redux-даги useSelector хук

Олдинги дарсларда биз store-га маҳсулотлар маълумотларини ёздик. Уларни store-дан қандай оламиз?

Буни амалга ошириш учун бизга функция-селектор ёзиш керак. Бу функция store-да сақланаётган стейт қийматидан маълум бир маълумот бўлагини қандай олишни билади ва илова ўсиб бораётганда такрорланувчи код ёзишнинг олдини олишта ёрдам беради. Кириш сифатида бу функция state-ни олади, чиқиш сифатида эса керкли стейт слайсини берadi. Масалан шундай:

jsxconst selectValue = state => state.some.value

Дарсликнинг бошларида store-да getState усули борлиги ҳақида гапирилган эди. Ва биз стейт қийматини олиш учун ундан осонгина фойдаланишимиз мумкин эди:

jsxconst value = selectValue(store.getState())

Муаммо шундаки, бизнинг React компонентларимиз store-га тўғридан-тўғри мурожаат қила олмайди, чунки уни компонент файлига импорт қилиш ман этилган. Лекин бизда React-Redux-нинг useSelector хуки ёрдамида компонентда маълумот олиш имконияти мавжуд. Ундан ташқари, ушбу хук билан бизнинг компонентларимиз ҳар доим фақат актуал маълумотларни олади:

jsxconst count = useSelector(selectValue)