【发布时间】:2018-08-30 14:19:08
【问题描述】:
将其输入 switchPath
const Routes = {
"/": Home,
"/login": Login,
'*': function(){return {DOM: xs.of(<h1> 404</h1>)}}
}
导航到/lossgin 将记录当前路线/路径是“/”。
【问题讨论】:
标签: url-routing cyclejs switch-path
将其输入 switchPath
const Routes = {
"/": Home,
"/login": Login,
'*': function(){return {DOM: xs.of(<h1> 404</h1>)}}
}
导航到/lossgin 将记录当前路线/路径是“/”。
【问题讨论】:
标签: url-routing cyclejs switch-path
这似乎是switch-path 的问题。 (和CycleJS history无关)
查看此开关路径issue 和此pull request。
简单地说,当使用路由“/”并且没有嵌套路由时,不会捕获通配符 *。例如:
const { path, value } = switchPath("/lossgin", {
"/": 123,
"/login": 456,
"*": 789
});
console.log(path, value) 产生:
/ 123
解决方法是将您的 login 路由更改为嵌套路由:
const { path, value } = switchPath("/lossgin", {
"/": 123,
"/login": {"/": 456}, // <-- nested route
"*": 789
});
console.log(path, value) 产生:
/lossgin 789
【讨论】:
/home需要按顺序出现在嵌套路由之前,但root,/可以列在嵌套路由之后。