我正在重构一个react + redux + saga + react-router 3应用程序,以便使用新的react-router 4,因为它会发生变化。在我使用browserHistory根据saga的结果指向适当的路径之前。由于react-router 4的变化,我不能再使用browserHistory了。
现在我已经将react-router-redux整合到了什么是browserHistory做的。问题是react-router-redux只能在store.dispatch中工作,例如: store.dispatch(推( '/'))。我似乎无法找到一种方法来访问我的传奇中的商店或它的调度功能。关于如何在传奇中访问store.dispatch的任何想法?我知道你可以在根传奇中传递参数,但我不知道如何在我的实际传奇中检索它们。
答案 0 :(得分:4)
使用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 })
}