Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在redux reducer中侦听路由器位置的更改?_Javascript_Reactjs_Redux_React Router - Fatal编程技术网

Javascript 如何在redux reducer中侦听路由器位置的更改?

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-Redux应用程序,正在尝试监听我的一个减速机中的
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操作的标准方法,可能他们认为这是不必要的。