错误:电子邮件地址格式不正确-React本机-Firebase



我正试图使用firebase在react native中进行登录应用程序,当我试图打开该应用程序时,一个警报说"错误:电子邮件地址格式不正确;。当我按下登录按钮时,错误是";TypeError:_this.props.onPress不是函数。(在"thes.props.onPress"中是Promise的一个无形部分(">

Login.js

import React, { useState } from 'react';
import { Text, View, TouchableHighlight, TextInput } from 'react-native';
import firebaseService from '../../services/firebase';
import Main from '../main/Main';
import styles from './styles';
const Login = ({navigation}) => {
const[user, setUser] = useState('');
const[pass, setPass] = useState('');
const onPressLogin = async () => {
try{
await firebaseService.login(user, pass);
navigation.navigate(Main);
} catch (e) {
alert(e);
}
}
return (
<View style={styles.container}>
<View>
<TextInput
placeholder="Email"
value={user} 
onChange = {(e) => setUser(e.nativeEvent.text)}
style={styles.inputText}
/>
<TextInput 
placeholder="Password" 
value={pass} 
onChange = {(e) => setPass(e.nativeEvent.text)}
style={styles.inputText}
/>
</View>
<TouchableHighlight style={[styles.button, styles.loginButton]}onPress={onPressLogin()}>
<Text style={styles.textButton}>Login</Text>
</TouchableHighlight>
<TouchableHighlight style={[styles.button, styles.signUpButton]} onPress={() => navigation.navigate('SignUp')}>
<Text style={styles.textButton}>Create new user</Text>
</TouchableHighlight>
</View>
);
}
export default Login;

firebase.js

import * as firebase from "firebase/app";
import 'firebase/firebase-firestore';
import 'firebase/firebase-auth';
// For Firebase JS SDK v7.20.0 and later, measurementId is optional
const firebaseConfig = {
apiKey: "*******",
authDomain: "*******",
databaseURL: "*******",
projectId: "*******",
storageBucket: "*******",
messagingSenderId: "*******",
appId: "*******",
measurementId: "*******"
}
class Firebase {
constructor(){
firebase.initializeApp(firebaseConfig);
this.auth = firebase.auth();
}
login = (email, pass) => {
return this.auth.signInWithEmailAndPassword(email, pass);
}
}
const firebaseService = new Firebase();
export default firebaseService;

因为您正在向onPress传递承诺

<TouchableHighlight style={[styles.button, styles.loginButton]}onPress={onPressLogin()}>

你可以通过传递函数

<TouchableHighlight style={[styles.button, styles.loginButton]}onPress={onPressLogin}>

相关内容

最新更新