JavaScript firebase "=>" in addEventListener



我是JS和Firebase的新手,所以我的问题可能很容易,但是我在WEB上找不到任何可以回答我的问题的东西。

我正在使用youtube上的firebase教程。捕获用户名和密码并将其传递给firebase的代码如下所示:

btnLogin.addEventListener('click', e => {
    const email = txtEmail.value;
    const pass =txtPassword.value();
    const auth = firebase.auth();
    const promise = auth.signInWithEmailAndPassword(email,pass);
    promise.catch(e => console.log(e.message));

});

我正在使用webstorm,它得到错误的"=>"和第一。

当我尝试运行这个时,我得到

"app.js:19 Uncaught TypeError: Cannot read property 'addEventListener' of null"

导致相同的"=>"

谁能解释一下这是什么以及如何使用它?或者给我指出正确的方向,去哪里寻找更多的信息。当我尝试谷歌它时,我总是得到与逻辑相关的主题(ass比较)。

我是一个真正的JS新手,所以请让我轻松…

编辑:

我设法让网络风暴工作-谢谢!

但是当页面加载时,我仍然得到相同的错误:

"app.js:19 Uncaught TypeError: Cannot read property 'addEventListener' of null"

代码:app.js:

(function () {
console.log("start");
    //get elements
    const txtEmail = document.getElementById("txtEmail");
    const txtPassword = document.getElementById("txtPassword");
    const btnLogin = document.getElementById("btnLogin");
    const btnSignUp = document.getElementById("btnSignUp");
    const btnLogOut = document.getElementById("btnLogOut");
    //add login event
    btnLogin.addEventListener("click", e => {
        const email = txtEmail.value;
        const pass =txtPassword.value;
        const auth = firebase.auth();
        const promise = auth.signInWithEmailAndPassword(email,pass);
        promise.catch(e => console.log(e.message));
});
}());
index.html:
<div class="container">
    <form class="form-signin">
        <h2 class="form-signin-heading">Please sign in</h2>
        <input type="inputEmail" id="txtEmail" class="form-control" placeholder="Email address" required autofocus>
        <input type="inputPassword" id="txtPassword" class="form-control" placeholder="Password" required>
        <div class="checkbox">
            <label>
                <input type="checkbox" value="remember-me"> Remember me
            </label>
        </div>
        <button id="btnLogIn" class="btn btn-lg btn-primary btn-block" type="submit">Log in</button>
        <button id="btnSignUp" class="btn btn-lg btn-primary btn-block" type="submit">Sign Up</button>
        <button id="btnLogOut" class="btn btn-lg btn-primary btn-block hide" type="submit">Log Out</button>
    </form>
</div>
<script src="src/app.js"></script>

我相信你错过了e周围的括号,因为这是ES6的箭头函数eg

btnLogin.addEventListener('click', (e) => {

别忘了你还需要添加

Use strict

放到你的js的顶部,让它也能工作

**更新答案**这个问题与你的按钮id有关。在你的html中,你有btnLogIn,但在你的js中,你要寻找btnLogIn,他们需要是相同的

最新更新