Router.create in react-router v1.0.0

时间:2015-11-03 14:48:23

标签: reactjs react-router

在react-router v1.0中,Router.create(react-router v0.13)的等价物是什么?

var router = Router.create({
  routes: routes,
  location: null // Router.HistoryLocation
});

我想为在DOM之外使用的路由器创建一个引用。

router.transitionTo('app');

上面的代码片段是v0.13中的代码片段。想知道是否有人知道如何在react-router v1.0中编写它们。

我已经阅读了react-router的文档,我找到了createRoutes函数。我不知道如何使用它。请帮帮我。

3 个答案:

答案 0 :(得分:1)

v1.0的React Router现在比这更模块化。导航之类的东西是历史记录的功能。对象而不是路由器本身,它只处理路由。

要使用React Router v1.0进行等效操作,您可以在路由器外部实例化history对象,然后随意执行任何操作。本指南提供了更详细的文档,可用于在组件外导航:https://github.com/rackt/react-router/blob/master/docs/guides/advanced/NavigatingOutsideOfComponents.md

答案 1 :(得分:1)

在v1中,路由器是一个组件,路由是子路由,历史是道具:

import { createHistory } from 'history'
import { Router } from 'react-router'

<Router history={createHistory()}>{routes}</Router>

编辑:现在我建议您仍然安装历史记录模块,但导入&#39; browserHistory&#39;来自react-router,它在它上面提供一个薄层

在您的顶级组件中,您可以访问props.history.pushState(state, pathname, query)(进一步向下,您必须通过它或将createin与createClass一起使用):

this.props.history.pushState(null, 'contact');

答案 2 :(得分:0)

您在v1.0.0中使用history对象 - 如果您没有通过Router,则会为您创建一个。

有关如何使用history对象和Getting Started了解如何使用它来执行导航,请参见Navigation