无法切换404路径,无法捕获通配符路由

时间:2018-08-30 14:19:09

标签: url-routing cyclejs switch-path

将其输入switchPath

  const Routes = {
    "/": Home,
    "/login": Login,
    '*': function(){return {DOM: xs.of(<h1> 404</h1>)}}
  }

导航到/lossgin将记录当前路线/路径为“ /”。

1 个答案:

答案 0 :(得分:0)

这似乎是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

See code example here.