我想知道如何将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'));
});
但是问题在于,随着URL的更改,React应用程序不会重绘组件。 我必须在浏览器中刷新整个页面才能看到更新的页面。 有什么想法或替代方法吗?
这两个路由器不兼容,因为它们将不同的状态推送到window.history
。
一种解决方案是使用memoryHistory
在React Router中配置路由。 然后,侦听window.history.pushState
并将新的URL推送到memoryHistory
。