我的问题是,由于onAuthStateChanged在安装componentm之后运行,因此路由器推送不起作用。
首先,我在vuex的store.js上进行了onAuthStateChanged。
// ./src/vuex/store.js
import { firebaseAuth } from "../firebase/firebaseAuth";
Vue.use(Vuex);
firebaseAuth.onAuthStateChanged(user => {
if (user) {
console.log(user);
state.user = user;
} else {
state.user = null;
}
});
const state = {
user: null
};
其次,当我在登录组件处登录时。路由器中的signIn()推送效果很好。之后,当我单击登录时,由于有关访问的“ beforeCreate()”块,它不允许我访问“ /登录”。
<script>
import { firebaseAuth } from "../firebase/firebaseAuth";
import { mapGetters } from "vuex";
export default {
name: "sighin",
beforeCreate() {
console.log(this.$store.state.user);
if (this.$store.state.user) {
this.$router.push("/");
}
},
data() {
return {
email: "",
password: ""
};
},
computed: {
...mapGetters({ user: "getUser" })
},
methods: {
signIn() {
firebaseAuth.signInWithEmailAndPassword(this.email, this.password).then(
user => {
this.$router.push("/");
},
err => {
alert("Oops. " + err.message);
}
);
}
}
};
</script>
但是现在出现了问题。当我使用重载直接在浏览器上访问“ / signin” URL时,登录组件的Create创建工作正常,然后onAuthStateChanged运行。因此,登录的this.router.push不起作用。我怎么解决这个问题?非常感谢您阅读我的问题。
答案 0 :(得分:0)
您可以在Public Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Application.Intersect(Target, Range("B:C")) Is Nothing Then
InputNum
End If
End Sub
首次通话后立即启动vue应用。
onAuthStateChanged