Я пытаюсь сохранить базовую информацию о пользователе (имя, адрес, номер телефона и т. Д.) С помощью AsyncStorage.
Я хочу сохранить эту информацию в объекте так:
user: {
complete: '',
fname: '',
lname: '',
email: '',
phone: '',
street: '',
city: '',
state: '',
zip: '',
phone: ''
}
У меня есть простая страница с текстовым полем и кнопкой, чтобы проверить это. текстовое поле будет для ввода значения «fname» моего пользовательского объекта, а кнопка просто отправляет его в asyncStorage:
export default class UserInfo extends React.Component {
static navigationOptions = {
title: "Coming soon!"
};
state = {
user: {
complete: '',
fname: '',
lname: '',
email: '',
phone: '',
street: '',
city: '',
state: '',
zip: '',
phone: ''
},
isLoading: true
}
componentDidMount = () => AsyncStorage.getItem('user').then((value) => this.setState({ 'user': value, isLoading: false}))
setUser = (value) => {
AsyncStorage.setItem('user', value);
}
render() {
if(this.state.isLoading) {
return (<ActivityIndicator/>)
}
return (
<View>
<TextInput
style={{height: 40, borderColor: 'gray', borderWidth: 1}}
onChangeText={(text) => this.state.user.fname}/>
<Button title="submit" onPress = {() => {this.setUser(this.state.user)}}/>
</View>
);
}
}
К сожалению, я, кажется, зацепился за эту строку:
onChangeText={(text) => this.state.user.fname}/>
Я получаю следующую ошибку:
null is not an object (evaluating '_this2.state.user.fname')
Я не уверен, в чем здесь дело, у меня не было проблем с хранением простых строк в asyncStorage, но попытка записи в объект в состоянии доставляет мне проблемы.
Может ли кто-нибудь указать мне правильное направление здесь?
Спасибо.