#react-native #post #input #hashmap #fetch
#react-native #Публикация #ввод #hashmap #выборка
Вопрос:
Я извлекаю документы и данные из API. В каждом документе есть несколько полей ввода.
Я анализирую и отображаю эти формы в режиме просмотра, и пользователь вводит свои данные в поля.
Как я могу сохранить состояние для каждого из них и опубликовать их на своем сервере.
Спасибо за любое предложение!
Вот мой код:
renderTextandInputs = (obje) => {
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 onChangeText={(text) => this.postToBmp({ text })} style={{ borderWidth: 1 }}>{keyvalue_to_json.inputFields[i].placeholderText}</TextInput>) amp;amp;
textinputName.push(<Text>{keyvalue_to_json.inputFields[i].title}</Text>)
}
}
return (
<View>
<ListItem
title={obje.name}
subtitle={obje.description}
onPress={() => this.postToBmp(obje)}
/>
<View >
<View style={{ flex: 1, flexDirection: 'row', justifyContent: 'space-between' }}>
<View style={{ flex: 1}}>
{textinputName}
</View>
<View style={{ flex: 1}}>
{foundTextFields}
</View>
</View>
)
}
Вот функция fetch (), я пытаюсь использовать HashMap () для этой работы, но не уверен, что это правильное решение:
postToBmp = (obje) => {
var postRequest = new HashMap();
for (myTextField in myList.components) {
let key = myTextField.key;
let value = myTextField.value;
if (key != null amp;amp; value != null) {
postRequest.set(key, value);
}
}
fetch('URL', {
method: 'POST',
headers: {
Accept: 'application/json',
'Content-Type': 'application/json',
'Connection': 'Keep-Alive',
},
credentials: 'include',
body: JSON.stringify({
from: 'test@test.dk',
to: [
'test test <test2@test2.com>'
],
attachmentName: obje.name,
dateString: '19. marts 2019',
signedByFullName: '', //I need to pass the values of the inputs
signedByCPRNumber: '', //I need to pass the values of the inputs
otherCompanyName: '', //I need to pass the values of the inputs
otherCompanyCVRNumber: '', //I need to pass the values of the inputs
})
})
}
Комментарии:
1. Можете ли вы показать, как выглядят ваши данные из api?
2. @MPN7 поля ввода в json выглядят следующим образом: InputFields: {[«type»: «textfield», «placeholderText»: «Введите свое полное имя «, «title «: «Полное имя «, «key «: «signedByFullName»]}
3. Я тоже сталкиваюсь с той же проблемой, когда я устанавливаю параметр body
fetch()
с моей переменной this.state, он не работает, пожалуйста, кто-нибудь, предложите какое-нибудь решение