Этот код работал отлично, но когда я добавил библиотеку firebase и {this.state.errorMessage}, я начал получать сообщение об ошибке «Текстовые строки с инвариантным нарушением должны отображаться в текстовом компоненте».
Я читал ранее, что это может произойти из-за белых пустых мест, но я не вижу пустых пробелов в своем коде ниже.
export default class Login extends React.Component {
static navigationOptions = {
header: null,
}
state = { email: '', password: '', errorMessage: null }
handleLogin = () => {
const { email, pasword } = this.state
firebase
.auth()
.signInWithEmailAndPassword(email, password)
.then(() => this.props.navigation.navigate('Tabs'))
.catch(error => this.setState({ errorMessage: error.message }))
}
render() {
return (
<View style={styles.container}>
{this.state.errorMessage && <Text style={{ color: 'red' }}{this.state.errorMessage}</Text>}
<View style={styles.loginTextCont}>
<Text style={{fontSize: 36, fontFamily: "Futura" }}>Willkommen zu</Text> <Text style={{fontSize: 36, fontFamily: "Futura", color:'#ff0000' }}>LifeStorm!</Text>
<View style={{width: 10, height: 5 }} />
</View>
<TextInput style={styles.inputBox}
autoCapitalize='none'
autoCorrect={false}
autoFocus={true}
keyboardType='email-address'
placeholder="Ihre E-Mail"
placeholderTextColor = "#ffffff"
selectionColor="#ffffff"
onChangeText={email => this.setState({ email })}
value={this.state.email} />
<TextInput style={styles.inputBox}
placeholder='Password'
autoCapitalize='none'
autoCorrect={false}
placeholder="Ihre Passwort"
placeholderTextColor = "#ffffff"
selectionColor="#ffffff"
secureTextEntry={true}
onChangeText={password => this.setState({ password })}
value={this.state.password} />
<TouchableOpacity
style={styles.button}
onPress={this.handleLogin}
><Text style={styles.buttonText}>Sich einloggen</Text>
</TouchableOpacity>
<View style={styles.signupTextCont}>
<Text style={styles.signupText}>
Haben Sie kein Konto?
</Text>
<TouchableOpacity onPress={() => this.props.navigation.navigate('Register')}><Text style={styles.signupButton}>Sich anmelden</Text></TouchableOpacity>
</View>
</View>
);
}
}