访问传统中的store.dispatch以与react router redux一起使用

时间:2017-06-21 19:37:57

标签: reactjs react-router react-router-redux redux-saga react-router-v4

我正在重构一个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的任何想法?我知道你可以在根传奇中传递参数,但我不知道如何在我的实际传奇中检索它们。

1 个答案:

答案 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 })
}