首页 > 解决方案 > 如何解决 vue 3 中的错误“这是未定义的”

问题描述

我已经创建了一个像下面这样的 vue 组件:

<template>
    <div class="login">
        <h3>Sign in</h3>
        <input type="text" placeholder="Email" v-model="email"/><br>
        <input type="password" placeholder="Password" v-model="password"/><br>
        <button v-on:click="login()">Login</button>
    </div>
</template>

<script>
    import firebase from 'firebase'

    export default {
        name: "Login",
        data: function () {
            return {
                email: '',
                password: ''
            }
        },
        methods: {
            login: function () {
                firebase.auth().signInWithEmailAndPassword(this.email, this.password).then(function (user) {
                    this.$router.replace('home')
                })
            }
        }
    }
</script>

在我输入用户名和密码并单击登录,firebase auth 成功和控制台显示错误之前,它仍然可以,这是未定义的。我该如何解决这个错误?我不能使用路由器。

标签: javascriptvue-componentvue-router

解决方案


尝试使用箭头函数:

firebase.auth().signInWithEmailAndPassword(this.email, this.password).then((user) => {
    this.$router.replace('home')
})

推荐阅读