React-Router Lifecycle mixin - depreacted?使用什么来确认v1.0.3中的导航?

时间:2016-02-09 15:08:40

标签: react-router

我正在运行react-router 1.0.3

我的目标是拦截导航离开页面的用户并设置标准浏览器确认对话框。

在Github页面[1]上,页面显示不推荐使用LifeCycle mixin。 (看起来我可以使用它,但如果它被弃用,也许不应该使用它。)

从这个页面[2]看来,在v.2中可以使用新功能router.setRouteLeaveHook(看起来不错)。这将为您设置listenBeforeLeavingRoute(并解除绑定)。

所以:对于版本1.0.3,我应该使用什么来挂钩到事假转换事件?它看起来不像LifeCycle mixin。但是setRouteLeaveHook还没有。我应该手动实现它;像这样:@ props.history.listenBeforeLeavingRoute(@ props.route,callback)?如果我这样做,我需要手动删除componentWillUnmount中的监听器? (我相信是这样)。

另外 - 生产中是v 2.0.0吗?如果我只是运行npm install我得到版本1.0.3

(React-Router很棒,但问题是文档似乎总是与当前版本不同步。它的制作者似乎并不认为文档是软件不可分割的一部分; ,在我看来它是。)

  1. https://github.com/rackt/react-router/blob/master/docs/API.md
  2. https://github.com/rackt/react-router/blob/master/upgrade-guides/v2.0.0.md#mixins-are-deprecated

1 个答案:

答案 0 :(得分:1)

我是React Router的维护者之一。

让我先回答你的问题。获取有关React Router v1.0.x的信息的最佳方法是here(它是1.0.x分支)。在那里,你可以找到许多非常有用的例子,你要找的是transitions example

如果您使用的是ES6课程,那么您无法使用mixins,因此您需要使用history,您可以在rackt/history repo中找到确认导航的示例。

感谢您对文档的反馈。我们并没有忽视这个话题,我们知道这是一个问题。 Ryan正在研究这个教程(见先见之明here),我们正处于making the docs better的过程中。