【问题标题】:Meteor use React Router with Iron RouterMeteor 使用 React Router 和 Iron Router
【发布时间】:2017-06-17 17:02:26
【问题描述】:

我想知道如何将 React Router 与 Iron Router 一起使用。原因是我开始在现有项目中使用 React 和 React Router。

这是我目前正在做的事情:

  • 使用 Iron 路由器渲染 Blaze 模板
  • 使用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 更改时重绘组件。我必须在浏览器中刷新整个页面才能看到更新的页面。有什么想法或替代方法吗?

【问题讨论】:

    标签: reactjs meteor meteor-blaze


    【解决方案1】:

    这两个路由器不兼容,因为它们将不同的状态推送到window.history

    解决方案是使用memoryHistory 在 React Router 中配置路由。然后,收听window.history.pushState 并将新的url 推送到memoryHistory

    【讨论】:

      猜你喜欢
      • 2016-10-31
      • 2023-03-12
      • 2014-05-07
      • 2023-03-30
      • 2013-11-21
      • 1970-01-01
      • 1970-01-01
      • 2015-04-06
      • 1970-01-01
      相关资源
      最近更新 更多