反应路由器

时间:2017-03-03 10:29:02

标签: javascript reactjs meteor react-router

在react-router将我重定向到页面之前,我可以调用Meteor方法吗? 我想记录登录用户关于他/她的页面浏览量的历史记录。

我看到在铁路由器中我可以使用onBeforeAction: function () {}

我无法找到ReactTraining的react-router的类似事件处理程序。 我在他们的文档中搜索https://github.com/ReactTraining/react-router/tree/1.0.x/docs

在流星服务器端,我使用的是简单的:json-routes。我搜索了他们的文档,但找不到与onBeforeAction事件处理程序相关的任何内容。

我正在使用react-router,所以我不能同时使用iron-router。那么有没有办法在Meteor-ReactJS中记录登录用户的页面视图

2 个答案:

答案 0 :(得分:2)

尝试收听浏览器历史记录browserHistory.listen

但首先你必须使用getCurrentLocation检测当前位置

答案 1 :(得分:1)

是!

通过:

  • 将重定向逻辑封装在一个方法AND
  • 使用库进行面向事件的编程,如

路由器helper.js

import {browserHistory} from 'react-router' ; 
import {fire} from 'mufa';

export function redirect(to) {
     fire('onBeforeRedirect', to);
     browserHistory.push(to);
     fire('onAfterRedirect', to);
}

OtherFile - 订阅-OnBefore.js

import {on} from 'mufa';

on('onBeforeRedirect', (to) => {
   //Your code here will be running before redirection .
});

组件的呼叫Redirect.js

import {redirect} from 'router-helper';


 //...

  redirect('/profile'); //<-- This call will trigger also onBefore listeners