React Native - 对象作为 React 子对象无效(找到:带有键 {$$typeof, type, key, ref, props, _owner, _store} 的对象) [英] React native - objects are not valid as a React child (found: object with keys {$$typeof, type, key, ref, props, _owner, _store})
问题描述
我是 React Native 的新手,我收到以下引用的错误:
I'm new to React Native and I'm getting an error quoted below:
对象作为 React 子对象无效(发现:对象带有键 {$$typeof, type, key, ref, props, _owner, _store}).如果您打算渲染一组子项,请改用数组.
Objects are not valid as a React child (found: object with keys {$$typeof, type, key, ref, props, _owner, _store}). If you meant to render a collection of children, use an array instead.
这是我在组件文件中包含的全部代码,除了样式:
Here's my whole code included in the component file, except styling:
import React, { Component } from 'react';
import { View, Text, TextInput, TouchableOpacity, Image, StyleSheet } from 'react-native';
import firebase from 'firebase';
class LoginForm extends Component {
state = { email: '', password: '', error: '', loading: false };
onButtonPress(){
const email = this.state.email;
const password = this.state.password;
this.setState({error: '', loading: true});
firebase.auth().signInWithEmailAndPassword(email, password)
.then(this.onLoginSuccess.bind(this))
.catch(() => {
firebase.auth().createUserWithEmailAndPassword(email, password)
.then(this.onLoginSuccess.bind(this))
.catch(this.onLoginFail.bind(this));
});
}
onLoginSuccess(){
this.setState({email: '', password: '', error: '', loading: false});
}
onLoginFail(){
this.setState({error: 'Nie udalo sie utworzyc konta.', loading: false});
}
render(){
return(
<View style={styles.container}>
<View style={styles.imageContainer}>
<Image
style={styles.image}
source={require('../images/loginIcon.png')}
/>
</View>
<View style={styles.formContainer}>
<TextInput
style={styles.input}
placeholder="Email..."
placeholderTextColor='rgba(255,255,255,0.9)'
underlineColorAndroid='rgba(0,0,0,0)'
onChangeText={(email) => this.setState({email: email})}
value={this.state.email}
autoCorrect={false}
/>
<TextInput
style={styles.input}
placeholder="Hasło..."
placeholderTextColor='rgba(255,255,255,0.9)'
underlineColorAndroid='rgba(0,0,0,0)'
autoCorrect={false}
onChangeText={(password) => this.setState({password: password})}
value={this.state.password}
secureTextEntry
/>
<TouchableOpacity style={styles.buttonContainer}>
<Text style={styles.button}>
Zaloguj się
</Text>
</TouchableOpacity>
<Text style={styles.error}>
{this.state.error}
</Text>
</View>
</View>
);
}
}
我很困惑如何解决这个问题.提前致谢.
I'am quite confused how to fix that issue. Thanks in advance.
推荐答案
试试这个:
从 App.js 中删除 firebase 导入语句:
Remove the firebase import statement from App.js:
import firebase from 'firebase'
在 Firebase 初始化时创建一个常量:
On Firebase initialization create a constant:
initializeFirebase() {
const firebase = require("firebase");
// Initialize Firebase
var config = {
...
};
firebase.initializeApp(config);
//inicializando o firestore
const firestore = require("firebase/firestore");
db = firebase.firestore();
db.settings({ timestampsInSnapshots: true });
}
componentWillMount() {
this.initializeFirebase();
...
}
对我来说,这种解决方法非常有效!
To me this workaround works very well!
这篇关于React Native - 对象作为 React 子对象无效(找到:带有键 {$$typeof, type, key, ref, props, _owner, _store} 的对象)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!