我對我的反應原生項目有問題。當我與火力點登錄和我存儲的數據AsyncStorage
它總是得到當在第一次登錄,但在第二次,這個錯誤不會顯示錯誤信息。我對這個問題很困惑。可能未處理的承諾拒絕(id:0):TypeError:TypeError:無法讀取屬性爲'null'的電子郵件
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是來自火力先生。我的意思是我將this.state.data保存到AsyncStorage –
在你的構造函數中,你將用戶初始化爲'null'。您收到錯誤「無法讀取null的屬性電子郵件」。如果您在構造函數中將用戶設置爲空對象,則不會發生此錯誤。 –