我想知道如何将React Router与Iron Router一起使用。原因是我开始在现有项目中使用React和React Router。
这是我目前正在做的事情:
Template#onRendered
,在模板中渲染React应用程序。routes.js
Router.route('/admin/:tab1?/:tab2?/:tab3?/:tab4?', function () {
this.layout('admin');
});
admin.html
<template name="admin">
<div id="admin-wrapper"></div>
</template>
admin.js
Template.admin.onRendered(function () {
render((
<Router>
...
</Router>
), this.find('#admin-wrapper'));
});
但问题是React应用程序不会在URL更改时重绘组件。我必须在浏览器中刷新整个页面以查看更新的页面。任何想法或替代方法?
答案 0 :(得分:0)
这两个路由器不兼容,因为它们将不同的状态推送到window.history
。
解决方案是使用memoryHistory
在React Router中配置路由。然后,听取window.history.pushState
并将新网址推送到memoryHistory
。