React-Redux Firebase电子邮件地址格式错误

时间:2019-01-06 01:40:37

标签: javascript reactjs firebase

登录用户时出现以下错误。

  

电子邮件地址格式错误。

但是,我可以注册。

正在运行的演示(未登录)

https://stackblitz.com/edit/react-herqe7

也许是我的firebase配置文件。

firebaseConfig.js

import React, { Component } from 'react';
import firebase from 'firebase/app';
import 'firebase/auth';
import 'firebase/database';

const config = {
    apiKey: "*******",
    authDomain: "*******",
    databaseURL: "*******",
    projectId: "*******",
    storageBucket: "",
    messagingSenderId: "*******"
};


firebase.initializeApp(config);

export const database = firebase.database()
export const auth = firebase.auth()
export const googleProvider = new firebase.auth.GoogleAuthProvider()

Actions.js

export const signIn = (user) => { return (dispatch) => {

    firebaseAuth.signInWithEmailAndPassword(user.email.trim(), user.password)
        .then(()=> {
            dispatch({type: 'SIGNIN_SUCCESS'})
        }).then((response) => {
            history.push('/dashboard');
        }).catch( (err) => {
            dispatch({ type: 'SIGNIN_ERROR', err});
        });
    }

}

1 个答案:

答案 0 :(得分:1)

我认为SignIn.js中的问题在于句柄更改以及输入内容没有name =“ email” name =“ password”。您正在使用e.target.name设置状态,但是电子邮件的输入没有名称。如果将一个控制台日志放入handleChange中,您将看到e.target.name是“”而不是您想要的电子邮件,密码等

handleChange = e => {
    console.log(e.target.name);
    const { formData } = this.state
    this.setState({
      formData: {
        ...formData,
        [e.target.name]: e.target.value
      }
    });
  };

在电子邮件输入中添加一个name =“ email”,以便句柄更改中的e.target.name具有setState的键值。

   <input
      type="email"
      name="email"
      className="form-control"
      id="exampleInputEmail1"
      onChange={this.handleChange}
      aria-describedby="emailHelp"
      placeholder="Enter email"
    />

还需要输入一个密码:

<input
   name="password"
   etc