同构反应-路由器-冗余同步历史中间件
Isomorphic react-router-redux syncHistory middleware
来自 react-router-redux
的syncHistory
接受从 react-router
browserHistory
的参数。在服务器上,调用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 路由器文档。
从 React Router 2 开始,文档 createMemoryHistory 作为 React Router 的一部分包含在内。
import createHistory from 'react-router/lib/createMemoryHistory';
相关文章:
- 在控制器和数据对象之间同步数据
- 同步调用,直到用户通过angular验证为访问者
- javascript函数同步
- window.location替换并传递URL历史记录条目中的变量
- 与运行长作业(javascript,node.js)的第三方API同步的最佳实践
- Javascript历史记录转换为php行
- 浏览器何时记录历史记录
- 显示具有服务器端自动时间注销的同步倒计时计时器
- 如何将Knockout.JS与服务器已经在DOM中呈现的数据同步
- 音频和动画在javasctipt循环中同步
- 主线程上的同步XMLHttpRequest已弃用
- 主干网.与Safari同步问题
- 失败:等待Protractor与页面同步时出错:“”;在窗口上找不到角度”;
- 是否同步加载了LINK元素
- 流路由器流星的历史
- 异步获取数据使用JavaScript同步获取数据
- 以同步方式获取Javascript Promise的值
- 如何使用Node.js脚本从Rally获取用户的修订历史
- 输入类型按钮返回历史记录并返回顶部
- 同构反应-路由器-冗余同步历史中间件