我保存了一个包含用户数据(如电子邮件,用户名等)的对象。
我使用AsyncStorage来保存它们, 当我得到它们时,我在登录或在textInput中使用它时只看到一个字符串 那么如何处理此问题并仅获取我保存的Just Email或Just Username之类的特定数据?
我的代码
const {
username,
email,
city,
mobileNumber,
} = this.state;
const profileData = {
"username": username,
"email": email,
"city": city,
"mobileNumber": mobileNumber
}
firebase
.auth()
.createUserWithEmailAndPassword(email, password)
.then(async user => {
firebase
.database()
.ref(`users/${user.user.uid}`)
.set({
username: username,
type: type,
email: email,
city: city,
mobileNumber: mobileNumber,
token: fcmToken
});
this.props.navigation.navigate("Home");
await AsyncStorage.setItem('@MyProfile:data', JSON.stringify(profileData)).then(() => console.log("Saved"));
}).catch(err => console.log(err));
async componentDidMount() {
try {
await AsyncStorage.getItem('@MyProfile:data')
.then(data => this.setState({ data }))
.catch(error => console.log('@error' + error));
console.log(this.state.data); //
} catch (error) {
console.log("@CError", error);
}
}
render(){
return(
<View style={styles.logoSection}>
{/* <SvgComponent height={100} /> */}
<Icon name="ios-contact" size={90} color='#4d8dd6' style={{ marginTop: 9 }} />
<Text style={{ fontSize: 18, color: "#000", margin: 35, marginTop: 7 }}>{this.state.data}</Text> // i wnat just display username here from storage
</View>
)
}
console.log(this.state.data);
我认为是一个字符串:{“ username”:“ user”,“ email”:“ user@user.us”,“ city”:“ usercity”,“ mobileNumber”:“ 0597979979”}
答案 0 :(得分:0)
{this.state.data.username}
或{this.state.data['username']}
但是在{this.state.data}中的这一行中,您可能不会在第一个渲染中访问用户名,也许this.state.data将为空,所以您需要在使用this.state.data['username']
之前进行验证!