javascript - react-router:匹配和路由。在 v4 中替换 .match()
问题描述
如何在 react-router v4 中匹配和路由?
下面是我使用 react-router(v2) 和 expressJs 编写的用于服务器端渲染的代码片段。
var routes = require('./src/routes')
app.get('*', function(req, res) {
ReactRouter.match({
routes: routes,
location: req.url
}, function(err, redirect, props) {
if (err) {
res.status(500).send(err.message)
}
else if (redirect) {
res.redirect(302, redirect.pathname + redirect.search)
}
else if (props) {
var markup = renderToString(React.createElement(ReactRouter.RouterContext, props, null))
res.render('index', { markup: markup })
}
else {
res.sendStatus(404)
}
})
})
我基本上使用 react-router.match() 功能将位置与路由匹配。我在互联网上搜索了很多,但仍然找不到 react-router v4 中 .match() 函数的替换。谁能告诉我如何将上面的代码转换为支持 react-router v4?
./src/routes.js
module.exports = <Route path="/" component={App}>
<IndexRoute component={Top}/>
<Route path="first" component={First}/>
<Route path="second" component={Second}/>
<Route path="test" component={Test}/>
<Route path="ask" component={Ask}/>
</Route>
解决方案
推荐阅读
- assembly - x86汇编如何使用DIV指令和循环来检查整数是否为素数
- javascript - 当我访问一个键时,我想要它的值并将其设置在一个数组中。访问是通过使用字符串
- c# - SignInManager 使用身份和 mongodb 抛出空异常 .NET CORE 3
- django - 如何在 django-yasg 上添加前缀“token”?
- python - Kivy 问题根据其他微调器选择更新微调器值(导航文件目录)
- python - Opencv:在FFT上检测最亮的线
- python - 尝试安装 Flask - 错误:root:找不到哈希 md5 的代码
- java - 动态添加行到表格 - Easytable (PDFBox)
- python - 在“for”循环中列出附加问题
- python-3.x - Pandas:按数据框行索引的前两个字符分组