不确定是什么问题,但是我的Navigo路由器正在复制路由。
路由器:
?:
问题
this.Navigo.hooks({
before: (done, params) => {
// some tomfoolery
done();
}
});
this.Navigo.on({
'/:region/travel': (params) => {
// import Travel module
// some nonsense
},
'/:region/travel/car': (params) => {
// import TravelCar module
// some nonsense
}
)};
this.Navigo.resolve();
导航到this.Navigo.navigate('/london/travel/car');
也会触发/london/travel/car
的路线,从而引起各种各样的麻烦。
这是标准行为吗?如果没有,那可能是什么问题?
我可以重写路线,以免它们冲突,例如/london/travel
,但我真的不想避免。
更新1:
我尝试切换路线的顺序,但没有区别。为此,我声明了最长的/london/travel-by-car
路径优先travel
,最后是最小的/:region/travel/car
,
更新2:
我对这个问题的研究越多,我就越坚信Navigo无法实现这一目标。 Navigo不支持嵌套路由。如果有人可以确认我的路由实际上是“嵌套的”,那么我将使用一个支持它们的备用路由库。
答案 0 :(得分:0)
我的代码有点不同,但按您预期的方式工作:
var router = new Navigo("/");
var render = (content) => (document.querySelector("#app").innerHTML = content);
router
.on('/:id', ({ data }) => {
setuserId(data.id)
if (verifiedUser) {
console.log("User verified");
} else {
console.log("User NOT verified");
}
rendertemplate(userDataURL(), "#landing-template", "#app")
})
.on('/:id/q', ({ data }) => {
// Example - flaging a send with 's' from 'SMS', perhaps a diff flow?
setuserId(data.id)
rendertemplate(userDataURL(), "#landing-template", "#app")
console.log("Source was a QRcode");
})
.on('/:id/q/t', ({ data }) => {
// Example - flaging a send with 's' from 'SMS', perhaps a diff flow?
setuserId(data.id)
rendertemplate(userDataURL(), "#landing-template", "#app")
console.log("Source was a QRcode in a Train");
})
这将给我一个谨慎的“..已验证”/“来源是一个二维码”/“来源是火车中的二维码”console.log 响应。
B