【发布时间】:2016-04-27 14:13:08
【问题描述】:
我正在使用反应路由器并希望根据当前路由执行某些操作。因此,一旦路线发生变化,我就需要执行某些任务。获得所需结果的理想方法是什么。
【问题讨论】:
-
你看过onEnter钩子了吗? github.com/reactjs/react-router/blob/master/docs/…
标签: reactjs react-router
我正在使用反应路由器并希望根据当前路由执行某些操作。因此,一旦路线发生变化,我就需要执行某些任务。获得所需结果的理想方法是什么。
【问题讨论】:
标签: reactjs react-router
您最好的选择是查看 onEnter 和 onLeave 钩子。你可以像这样使用它们:
<Route path='/' onEnter={foo} onLeave={bar} />
onEnter 函数将传递三个参数:onEnter(nextState, replace, callback)。 nextState 是路由器的下一个状态,replace 是您可以调用以重定向到不同路由的函数,callback 是可选的。如果您使用callback,则在您明确调用callback() 之前不会发生路由转换。只需将其忽略即可避免这种情况。
onLeave 函数要简单得多,只要您的应用程序离开该路径就会调用它。
可以看官方文档here
【讨论】: