现在,我正在尝试将一些用户输入的数据保存为某些形式,并将其保留在用户的本地设备中。 但是,我有一个错误。 (下图)
我不知道为什么以及如何解决这个问题... 以下是我的代码。 这是“状态”。
class PersonalInfo1 extends React.Component {
constructor(props) {
super(props);
this.state = {
userInput: [
{ fullname: '' },
{ middleName: '' },
{ reason: '' },
{ birthPlaceCity: '' },
{ birthPlaceCountry: '' },
{ Citizinchip: '' },
{ aboutMaridge: '' },
{ fromTermOfMaridge: '' },
{ ToTermOfMaridge: '' },
{ nameOfSpouse:'' },
{ birthdateOfSpouse: '' },
{ fromTermOfExMaridge: '' },
{ ToTermOfExMaridge: '' },
{ nameOfExSpouse: '' },
{ birthdateOfExSpouse: '' },
],
};
}
这是其余的代码。
componentDidMount() {
AsyncStorage.getItem('userInput')
.then((userInput) => this.setState({ userInput }));
}
onChangeText(text, name) {
AsyncStorage.getItem('userInput')
.then((userInput) => {
if (userInput !== null) {
this.state.userInput[name] = text;
AsyncStorage.setItem('userInput', userInput);
}
});
}
const { userInput } = this.state;
return (
<ScrollView style={styles.container}>
<InfoHeader navigation={this.props.navigation}>
申請者情報1
</InfoHeader>
<Notes />
<QuestionTextSet
onChangeText={(text) => this.onChangeText(text, 'fullname')}
placeholder={'例:留学太郎'}
value={userInput.fullname}
editable
>
姓名(漢字表記)
</QuestionTextSet>
答案 0 :(得分:0)
this.state.userInput
是以对象(例如{全名:})为值的索引数组(0,1,2 ...)。因此,您不能通过以下方式访问它:
this.state.userInput[name] = text;
尝试将this.state
更改为以下内容:
this.state = {
userInput:
{
fullname: '',
middleName: '',
reason: '',
birthPlaceCity: '',
birthPlaceCountry: '',
Citizinchip: '',
aboutMaridge: '',
fromTermOfMaridge: '',
ToTermOfMaridge: '',
nameOfSpouse: '',
birthdateOfSpouse: '',
fromTermOfExMaridge: '',
ToTermOfExMaridge: '',
nameOfExSpouse: '',
birthdateOfExSpouse: ''
}
};
...如果您的情况可以接受的话。