在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函数。我不知道如何使用它。请帮帮我。
答案 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。