React-route 1.0相当于0.13的Router.create

时间:2015-12-19 00:19:09

标签: react-router

我继承了一个使用React-Router的项目,并且提升了所有依赖项,包括react-router。但是,它的API在0.13和1.0之间有所变化,我想知道如何将以下代码转换为1.0格式:

var routes = (
  <Route handler={...}>
    <Route name="..." path="/.../"
       handler={require('../pages/...jsx')}/>
    ...
  </Route>
);

[...snip...]

exports.generateStatic = function(url, cb) {
  var router = Router.create({
    routes: routes,
    location: url
  });

  router.run(function(Handler) {
    var pageHandler, html, title;
    var err = null;
    try {
      html = ReactDOMServer.renderToString(<Handler/>);
      pageHandler = Page.handlerForPage(router, url);
      title = Page.titleForHandler(pageHandler);
    } catch (e) {
      err = e;
    }
    cb(err, html, { title: title });
  });
};

这个代码不是做“实际导航”,而是通过显式呈现其中的所有路径来生成应用程序作为静态HTML,而我在StackOverflow上看到的唯一问题是如何使用Router.create是什么用于导航(Router.create in react-router v1.0.0),这在这种情况下并不特别相关。

1 个答案:

答案 0 :(得分:2)

现在API有点不同了 - 请查看当前版本的服务器呈现文档:https://github.com/rackt/react-router/blob/v1.0.2/docs/guides/advanced/ServerRendering.md