ReactRouter"on change"事件?

Rya*_*edy 9 reactjs react-router

我想在我的单页应用程序上安装分析处理程序,并希望捕获主路径下的每个路径更改.我认识到ReactRouter提供了一个onEnter路由事件; 但是,这需要我在每个路由上单独安装处理程序.我可以创建一个自动onEnter填充的Route子类,但是我无法覆盖onEnter并仍然保留分析跟踪处理程序.

在给定的根路由中监听任何变化的最佳方法是什么?

pxw*_*ise 8

您可以使用react-router willTransitionTo静态函数来检测路由更改并transition.pathga()函数调用中发出,如下所示:

var App = React.createClass({
  mixins: [Router.State],
  statics: {
    willTransitionTo: function(transition, params, query, props) {
      ga('send', 'pageview', {'page': transition.path});
    }
  },
  render: function() {
    return (
      <div>
        <RouteHandler />
      </div>
    );
  }
});
Run Code Online (Sandbox Code Playgroud)

这个答案中可以看到一个更完整的例子.