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
fromreact router redux
接受一个参数,该参数是browserHistory
fromreact 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';