javascript - 重定向到主页
问题描述
我在我的 vue 注册中遇到了下一个问题。当我单击注册时,它会将我重定向到主页。也许使用一些条件可以解决这个问题。我怎样才能防止这种情况发生?有任何想法吗?我的Javascript:
register() {
firebase
.auth()
.createUserWithEmailAndPassword(this.email, this.lozinka)
.then(
function() {
console.log('Success');
let id = this.email
db.collection("user")
.doc(id)
.set({
korisnicko_ime: this.korisnicko_ime,
email: this.email,
lokacija: this.lokacija,
ime_objekta: this.ime_objekta,
kontakt: this.kontakt,
})
.then((doc) => {
console.log("Saved", doc)
})
})
.catch(function(error) {
console.error("Error...", error);
if ( store.currentUser=null ) {
this.$router.replace({ name: 'Register'});
}
});
console.log('Continue');
this.$router.replace({ name: 'Home'});
},
解决方案
我不知道你实际上想要实现什么,但你正在做的是触发一个请求,在请求的承诺上注册你的回调并立即替换你当前的路由。
register() {
firebase
.auth()
.createUserWithEmailAndPassword(this.email, this.lozinka)
.then(successCallback)
.catch(errorCallback);
this.$router.replace({ name: 'Home'});
}
我猜您可能想等待注册请求的响应并根据承诺是成功解决还是出现错误来重定向您的用户?
首先,您可能应该更深入地了解
- 用它的async / await语法承诺
- 在let / var上使用const
async register() {
try {
const registerResponse = await firebase
.auth()
.createUserWithEmailAndPassword(this.email, this.lozinka);
console.log("Success");
const id = this.email;
const collectionResponse = await db
.collection("user")
.doc(id)
.set({
korisnicko_ime: this.korisnicko_ime,
email: this.email,
lokacija: this.lokacija,
ime_objekta: this.ime_objekta,
kontakt: this.kontakt,
});
console.log("Saved", doc);
// After everything was successfull, redirect to home
this.$router.replace({ name: 'Home'});
} catch(error) {
console.error("Error...", error);
if ((store.currentUser = null)) this.$router.replace({ name: "Register" });
}
}
推荐阅读
- scroll - 如何启用 QBasic 输出窗口的滚动条?
- javascript - 选择下拉列表中的复选框后如何清除 v-autocomplete(多个)搜索输入?
- angular - 如何使用formbuilder获取离子选择多个数据并将其发布为数组
- loops - 启动 .exe 后继续运行批处理循环
- android - 我有约束布局的问题,就像我使用两个布局一样,它显示完美,但在运行时只显示第二个布局
- php - 如何获得整数的小数点
- javascript - 为什么渲染组件时不填充状态数组?
- wget - 将网页点击翻译为 wget 的 URL
- orientdb - 如何更改 OrientDB Studio 超时
- javascript - 为什么我不能在 Request 对象上设置一些标头?