React-route 1.0 相当于 0.13 的 Router.create
React-route 1.0 equivalent of 0.13's Router.create
我继承了一个使用 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 });
});
};
而不是 "actual navigation" 此代码用于通过显式呈现其中的所有路由来将应用程序生成为静态 HTML,我在 Whosebug 上看到的唯一问题是如何使用Router.create
是用来做导航的(),这在这种情况下并不是特别相关。
API 现在有点不同 - 查看当前版本的服务器渲染文档:https://github.com/rackt/react-router/blob/v1.0.2/docs/guides/advanced/ServerRendering.md。
我继承了一个使用 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 });
});
};
而不是 "actual navigation" 此代码用于通过显式呈现其中的所有路由来将应用程序生成为静态 HTML,我在 Whosebug 上看到的唯一问题是如何使用Router.create
是用来做导航的(
API 现在有点不同 - 查看当前版本的服务器渲染文档:https://github.com/rackt/react-router/blob/v1.0.2/docs/guides/advanced/ServerRendering.md。