нас есть список редьюсеров, каждый в своём файле.
используем combineReducer, чтобы их объединить
затем дергаем dispatch() из компонент, указывая type, чтобы творить свои тёмные дела.
вопрос: а что если ты работаешь над проектом не один и кто-то создаст редьюсер и укажет там type: 'GET', а ты уже использовал 'GET' где-то в другом редьюсере. что тогда?
ведь используя диспатч мы не указываем, к какому редьюсеру обращаемся, а указываем только type.
как это проблема решается? 🙄
Можно более уникально прописывать типы
можно, но как гарантировать, что наши type не будут дублироваться? допустим большой проект, много разработчиков, много редьюсеров есть какое-то соглашение по наименованию? типа как БЭМ, тока для редакса?)
Экшон будет обработан обоими редьюсерами. Решается какой-нибудь утилитой, создающей уникальные action creator’ы
const createActionCreator = type => { const uniqueId = generateRandomString() const uniqueType = type + uniqueId const actionCreator = payload => ({ payload, type: uniqueType }) actionCreator.type = uniqueType return actionCreator } const actionCreator = createActionCreator('get') // в компоненте dispatch(actionCreator(420)) // в редьюсере case actionCreator.type:
понял. спасибо!
Обсуждают сегодня