Javascript React Redux路由器错误

Javascript React Redux路由器错误,javascript,reactjs,redux,react-router,Javascript,Reactjs,Redux,React Router,我正在尝试安装Redux+React路由器应用程序。我认为问题在于ImmutableJS,但我不知道如何解决它 client.js 从“不可变”导入{fromJS} 从“React”导入React 从“react dom”导入{render,unmountComponentAtNode} 从“react hot loader”导入{AppContainer} 从“react redux”导入{Provider} 从“react Router”导入{match,Router,browserHist

我正在尝试安装Redux+React路由器应用程序。我认为问题在于ImmutableJS,但我不知道如何解决它

client.js

从“不可变”导入{fromJS}
从“React”导入React
从“react dom”导入{render,unmountComponentAtNode}
从“react hot loader”导入{AppContainer}
从“react redux”导入{Provider}
从“react Router”导入{match,Router,browserHistory}
从“react router redux”导入{syncHistoryWithStore}
从“redux”导入{createStore,CombineReducer,compose,applyMiddleware}
从“react router redux”导入{routerReducer,routerMiddleware}
函数createSelectLocationState(reducerName){
让我们的国家;
让我们来看看prevRoutingStateJS;
返回(状态)=>{
const routingState=state.get(reducerName);//或state.routing
如果(!routingState.equals(prevRoutingState)){
prevRoutingState=路由状态;
prevRoutingStateJS=routingState.toJS();
}
返回prevRoutingStateJS;
};
}
函数配置存储(历史记录、初始状态){
常数减速机=组合减速机({
路由:路由导出器
});
返回createStore(
减速器,
初始状态,
谱写(
applyMiddleware(
路由器管理软件(历史记录)
)
)
);
}
const initialState=fromJS(窗口初始状态);
常量存储=配置存储(浏览器历史记录,初始状态);
const history=syncHistoryWithStore(浏览器历史记录、存储、{
selectLocationState:createSelectLocationState('路由')
});
const rootNode=document.getElementById('root');
常量renderApp=()=>{
常量路由=需要('./路由');
匹配({history,routes},(错误,重定向位置,renderProps)=>{
渲染(

状态下
此对象

我使用
“react”:“^15.3.2”
“redux”:“^3.6.0”
“react路由器”:“^3.0.0”

更新1 我现在使用
redux immutable
中的
combinereducer

import {combineReducers} from 'redux-immutable'
但是得到一个错误:

未捕获类型错误:routingState.equals不是函数

在这里:

更新2

我修正了上面的问题,但还有一个错误


我在存储库中发布的所有代码

您正在使用的
组合转换器
没有使用
不可变
。通过设置
fromJS(blah)
,每个分支都是
不可变的,但不是在您的状态的最高级别。请改用
redux immutable


从'redux immutable'导入{combinereducer};

问题仍然存在于route.js的
src/index.js
文件和
require
语句中

如果
require
es6
模块具有
默认值
,则必须使用
require
d模块中的默认值。类似

const routes = require('./routes').default;

这解决了您的问题,没有对您的git repo进行任何其他更改。

是的,问题已经解决,但不是错误未捕获类型错误:routingState.equals不是一个函数(…)您或者没有创建历史记录,或者没有将历史记录传递给路由器。我不明白,在我的代码中它应该是什么样子?