Javascript 如何在redux reducer中侦听路由器位置的更改?
我有一个React-Redux应用程序,正在尝试监听我的一个减速机中的Javascript 如何在redux reducer中侦听路由器位置的更改?,javascript,reactjs,redux,react-router,Javascript,Reactjs,Redux,React Router,我有一个React-Redux应用程序,正在尝试监听我的一个减速机中的React路由器位置更改。我使用的是hashHistory,而不是browserHistory。在我的Redux开发工具中,我可以看到当位置发生变化时,它正在启动一个操作: 然而,在我的减速机中,当我听“位置改变”时,它什么也听不到 import * as types from '../constants/actionTypes'; import objectAssign from 'object-assign'; impo
React路由器
位置更改。我使用的是hashHistory
,而不是browserHistory
。在我的Redux开发工具中,我可以看到当位置发生变化时,它正在启动一个操作:
然而,在我的减速机中,当我听“位置改变”时,它什么也听不到
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;
}
}
为了在我的减速机中处理此操作,我必须使用什么?将
case'LOCATION\u Change'
更改为case'@@router/LOCATION\u Change'
更好的是,使用react router
提供的常量:
从“连接的反应路由器”导入{LOCATION_CHANGE};
// ...
开关(动作类型){
案例位置更改:{}
}
问题--位置变化是React路由器提供的常量还是连接的React路由器提供的常量?另外,我还没有找到关于这个常量的任何实际文档。知道为什么吗?肯定是来自路由器(),文档可能有点缺乏。但由于这是命名redux操作的标准方法,可能他们认为这是不必要的。