React router:在每个<link />导航上执行自定义功能

时间:2016-09-02 14:09:06

标签: javascript reactjs react-router

很抱歉,如果已经回答了这个问题。 但有没有办法在每个<Link>导航上执行自定义功能?最好不要创建自定义<Link>包装。

我希望在应用程序内的每个导航之前将一些信息提供给sessionStorage。

由于

2 个答案:

答案 0 :(得分:9)

您可以使用onClick执行任何操作,例如

<Link
  to="/"
  onClick={() => console.log('Heading to /')} />

console.log替换为执行sessionStorage更新等功能的功能,就是这样。

另一种方法是使用onEnter prop Route prop来为每条路径输入执行某个函数:

<Route
  path="/"
  component={App}
  onEnter={() => console.log('Entered /')} />

请参阅referenceexample with react-router and react-redux

答案 1 :(得分:-1)

你可以像下面这样在反应路由器的路由对象上调用任何函数:

function someFunction(a,b){ 
 const c = a + b;
 return c
} 


<Switch>
  <Route exact exact path="/" component={SomeComponent} />
  <Route path="/reload" render= {(props)=>someFunction() } />
</Switch>