我想在我的单页应用程序上安装分析处理程序,并希望捕获主路径下的每个路径更改.我认识到ReactRouter提供了一个onEnter路由事件;但是,这需要我在每条路线上单独安装处理程序.我可以创建一个Route的子类,它自动填充onEnter,但是我无法覆盖onEnter并仍然保留分析跟踪处理程序.
在给定的根路由中监听任何变化的最佳方法是什么?
您可以使用react-router
willTransitionTo静态函数来检测路由更改并在ga()函数调用中发出transition.path,如下所示:
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> ); } });
在this answer中可以看到更完整的例子.