Доступ к магазину.отправка в саге для использования с react router redux
Я в настоящее время рефакторинга реакцию + обертывание + сага + реагировать-маршрутизатор 3 приложения для использования нового реагировать-маршрутизатор 4 из-за критических изменений. Прежде я бы использовал browserHistory для направления к соответствующему пути, основанному на результатах саги. Из-за изменений в react-router 4 я больше не могу использовать browserHistory.
Теперь я включил react-router-redux, чтобы по существу сделать то, что сделала browserHistory. Проблема в том, что react-router-redux работает только в магазине.отправка, напр. магазин.dispatch(push('/')). Похоже, я не могу найти способ получить доступ ни к магазину, ни к его диспетчерской функции внутри моих саг. Любые идеи о том, как получить доступ к магазину.отправка внутри саги? Я знаю, что вы можете передать аргументы в корневой саге, но я не знаю, как восстановить их в моих настоящих сагах.
1 ответ:
Используйте эффект redux-saga
put
, который отправляет действия redux в хранилище - docs .import { call, put } from 'redux-saga/effects' // ... function* fetchProducts() { const products = yield call(Api.fetch, '/products') // create and yield a dispatch Effect yield put({ type: 'PRODUCTS_RECEIVED', products }) }