Javascript 同构react路由器redux syncHistory中间件

Javascript 同构react路由器redux syncHistory中间件,javascript,reactjs,react-router,redux,Javascript,Reactjs,React Router,Redux,syncHistoryfromreact router redux接受一个参数,该参数是browserHistoryfromreact router。在服务器上,调用syncHistory(browserHistory)实际上不起作用。我正在尝试使用中间件创建存储: const { syncHistory } from 'react-router-redux' const { browserHistory } from 'react-router' const { createStore, ap

syncHistory
from
react router redux
接受一个参数,该参数是
browserHistory
from
react router
。在服务器上,调用
syncHistory(browserHistory)
实际上不起作用。我正在尝试使用中间件创建存储:

const { syncHistory } from 'react-router-redux'
const { browserHistory } from 'react-router'
const { createStore, applyMiddleware } from 'redux'

const reduxRouterMiddleware = syncHistory(browserHistory)
const createStoreWithMiddleware = applyMiddleware(
  routerReduxMiddleware
)(createStore)
在服务器上,我收到以下错误:

    unsubscribeHistory = history.listen(function (location) {
                                ^

TypeError: Cannot read property 'listen' of undefined

正如您所观察到的那样,
browserHistory
将无法在服务器上工作,因为它使用内置于浏览器中的历史API。在服务器上,您必须将其替换为类似
history/lib/createMemoryHistory
,例如

import createHistory from 'history/lib/createMemoryHistory';

const reduxRouterMiddleware = syncHistory(createHistory);
...
有关历史记录的更多信息,请参阅React路由器


从2号路由器开始, , createMemoryHistory是React路由器的一部分

import createHistory from 'react-router/lib/createMemoryHistory';