调度`push`不会改变React Redux路由器

时间:2018-02-15 14:26:17

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

我正在使用React Redux路由器开发一个项目,我正在尝试更改页面。当组件调度“推送”操作时,我会看到"@@router/LOCATION_CHANGE"通过,但没有任何更改。

我也确实应用了routerMiddleware,

import thunk from 'redux-thunk';
import { routerMiddleware } from 'react-router-redux';
import createHistory from 'history/createBrowserHistory'
import rootReducer from '../reducers';

export const history = createHistory();
const middleware = routerMiddleware(history)
export function configureStore(initialState) {
  return createStore(
    rootReducer,
    initialState,
    applyMiddleware(thunk),
    applyMiddleware(middleware)
  );
}

关于我做错了什么的想法?

1 个答案:

答案 0 :(得分:3)

applyMiddleware需要一个中间件列表,因此您错误地使用它: 请将其更改为:

export const history = createHistory();
const middleware = routerMiddleware(history)
export function configureStore(initialState) {
  return createStore(
    rootReducer,
    initialState,
    applyMiddleware(thunk,middleware)
  );
}

这也解释了为什么切换它们有效(商店收到了另一个中间件)。