javascript - 如何解决vue 3中的错误 "this is undefine"

标签 javascript vue-component vue-router

我创建了一个如下所示的 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 身份验证成功并且控制台显示错误“这是未定义”之前,它仍然可以。 我该如何解决这个错误?我无法使用路由器。

最佳答案

尝试使用箭头函数:

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

关于javascript - 如何解决vue 3中的错误 "this is undefine",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52552618/

相关文章:

javascript - 如何从 ref 获取 ref key 然后按该键搜索并从该 ref 获取数据

javascript - 在本地机器上运行 codepen 元素的问题

laravel - 如何使用 VueJS 和 Vue-router 在 Laravel 应用程序中使用 url 参数获取数据

javascript - 为什么这个功能不起作用?显示 val 为 null 的错误

javascript - (Angularjs) 共享一个 Controller 的 View 之间的数据不同步

node.js - Vue JS Intellij 设置

vue.js - 当 v-for 渲染的对象发生变化时如何更新 DOM?

css - 如何仅为我的自定义 vue 组件包含外部 css 文件?

vue.js - VueJs 3 :vue-router change query and use router. Push() 但 url 不更新

javascript - Vue Router - 从 beforeEach 内部传递数据