我遇到了Vue Router的这个问题。
我的方案是允许首先加载/
,从那里获取一些数据,然后它将转到/chat/:chatId
路由并在那里呈现UI,其中:chatId
param设置自我从API获得的数据。
我有/
和['chat', 'chat/:chatId']
作为路由别名。
我有这个问题的内部保护。
beforeRouteEnter(to, from, next) {
store.dispatch('fetchOpenSessions')
.then(() => {
const firstChat = Object.keys(store.state.chatsidebar.openSessions)[0];
next({ name: 'chat', params: { chatId: firstChat } });
});
},
但是这段代码无限循环,导致浏览器挂起。
我的问题是,如果我的初始路线是chat/:chatId
或/
而没有进入无限循环,如何设置/chat
?
答案 0 :(得分:1)
beforeRouteEnter(to, from, next) {
store.dispatch('fetchOpenSessions')
.then(() => {
if(to.name == 'chat'){
next();
}else{
const firstChat = Object.keys(store.state.chatsidebar.openSessions)[0];
next({ name: 'chat', params: { chatId: firstChat } });
}
});
},