私のネイティブプロジェクトには問題があります。 firebaseでログインし、データをAsyncStorage
に保存すると、最初にログインすると常にエラーメッセージが表示されますが、2回目にこのエラーは表示されません。私はこの問題について本当に混乱しています。未解決のプロミス拒否(ID:0):TypeError:TypeError:ヌルのプロパティ 'email'を読み取ることができません。
Dashboard.js
constructor(props){
super(props);
this.state= {
user: null,
loading: true,
}
}
componentWillMount() {
AsyncStorage.getItem('userData').then((user_data_json) => {
let userData = JSON.parse(user_data_json);
this.setState({
user: userData,
loading:false
});
console.log(this.state.user)
});
}
Logout(){
AsyncStorage.removeItem('userData').then(() => {
firebase.auth().signOut().then(() => {
this.props.navigation.navigate('Login')
});
});
console.log(this.state.user)
}
render() {
if(this.state.loading){
return <ActivityIndicator size="large" />
}
return(
<View>
<Text style={styles.title}> Hello {this.state.user.email} </Text>
<Button title="Log Out" onPress={this.Logout.bind(this)} />
</View>
)
}
}
** this.state.user **はfirebase sirから来ました。私はAsyncStorageにthis.state.dataを保存することを意味します。 –
コンストラクタで、ユーザを 'null'に初期化します。あなたはエラー 'ヌルのプロパティの電子メールを読むことができません 'を取得しています。コンストラクタ内の空のオブジェクトにuserを設定すると、このエラーは発生しません。 –