我有一个React Redux应用程序,我正在尝试在我的一个Reducer中监听react-router
位置更改。我使用的是hashHistory
,而不是browserHistory
。在我的Redux devtools中,我可以看到它在位置发生变化时触发了一个动作:
然而,在我的reducer中,当我听'LOCATION_CHANGE'时,它没有捕获任何东西。
import * as types from '../constants/actionTypes';
import objectAssign from 'object-assign';
import initialState from './initialState';
export default function listingsReducer(state = initialState.listings, action) {
switch (action.type) {
case 'LOCATION_CHANGE': {
console.log(action); //currently doesn't get into this case block
return state;
}
default:
return state;
}
}
为了在我的减速机中处理此动作,我必须使用什么?
答案 0 :(得分:6)
将case 'LOCATION_CHANGE'
更改为case '@@router/LOCATION_CHANGE'
。
答案 1 :(得分:0)
更好的是,使用react-router
提供的常量:
import { LOCATION_CHANGE } from 'connected-react-router';
// ...
switch (action.type) {
case LOCATION_CHANGE: {}
}