我看到很多人就类似的问题(如果不是同一个问题)发帖,但没有一个解决方案对我有用。
我有一个使用本地策略(电子邮件、密码)的标准身份验证网关,我想在成功的身份验证后重定向到 root(或他们的专用页面)。
它应该像this.$router.push('/')
or一样简单,this.$router.push(user)
但什么也没有发生。这是代码...
async initialise({ commit, state}) {
this.$toast.info('Initialising...');
try {
const { data } = await this.$axios.get(`/initialise/${state.auth.user.shop}`);
commit('INITIALISE_SHOP', data.shop);
commit('employees/SET_EMPLOYEES', data.employees, { root: true })
this.$toast.success('Login Successful');
this.$router.push('/'); <<< this is the offending line
} catch (error) {
this.$toast.error('Unable to fetch schedule data. Please contact the Support Team.');
}
}
更奇怪的是,如果我去掉所有的代码,只是把路由器功能放进去,根本不会做任何事情。
让我补充一下...
如果我在任何地方添加console.log()
到代码中,它将记录下来。我可以把它放在 http 请求之前,我可以把它放在之前,$toast
或者我可以把它放在不成功之后this.$router.push('')
,它会记录我输入的任何内容。