我将文本输入(我从API获取)的值保存到数组时遇到问题。目前我可以保存值,但如果我尝试编辑一个文本输入值,它将保存新值并仍然保留旧值。我想在'onChangeText'结束时只保存最新的值。
我很感激任何建议!
这是我的代码:
textfieldsObject = () => {
const obje = this.props.navigation.state.params.item;
var keyvalue_to_json = JSON.parse(obje.keyValues);
var textinputName = [];
var foundTextFields = [];
for (let i = 0; i < keyvalue_to_json.inputFields.length; i++) {
if (keyvalue_to_json.inputFields[i].type === 'textfield') {
foundTextFields.push(<TextInput onEndEditing={(e) => {
keyvalue_to_json.inputFields[i].inputValues = e.nativeEvent.text;
this.myInputFields.myTextFields.push(keyvalue_to_json.inputFields[i])
}}
>{keyvalue_to_json.inputFields[i].placeholderText}</TextInput>)
}
}
return (
<View>
{foundTextFields}
</View>
)
}
每次编辑文本输入时都无法进行推送。你会得到你所做的每一个编辑的数组,我认为这不是你想要的。 也许这个:
this.myInputFields.myTextFields.[i]=keyvalue_to_json.inputFields[i]