登录用户时出现以下错误。
电子邮件地址格式错误。
但是,我可以注册。
正在运行的演示(未登录)
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});
});
}
}
答案 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