Сохранить состояние массива TextInput - React Native - PullRequest
1 голос
/ 21 марта 2019

Я извлекаю из API несколько TextInputs и отображаю их на моем экране. Итак, как я могу сохранить состояние пользовательских входов в глобальный объект. Примерно так:

    state = {
    foundtextfields: []
   }

Здесь я помещаю эти извлеченные TextInputs в массив foundTextFields []:

var foundTextFields = [];

    foundTextFields.push(<TextInput>{keyvalue_to_json.inputFields[i].placeholderText}</TextInput>)

И я отображаю текстовые вводы в этом списке:

return (
    <View>
      {foundtextfields}
    </View>
)

EDIT: Я хочу перебрать состояние массива и извлечь ключ из этого ex. «Ключ» (signaturebyFullName) и сопоставьте, если это совпадает со свойством тела json «signaturebyFullName», как показано ниже.

  postToBmp = (obje) => {
var userArray = [];
for (i = 0; i < this.myInputFields.myTextFields.length; i++) {
       userArray.push(this.myInputFields.myTextFields[i])
       console.log("this is the title of al inputFields:",   this.myInputFields.myTextFields[i].key)
}

fetch('URL', {
  method: 'POST',
  headers: {
    Accept: 'application/json',
    'Content-Type': 'application/json',
    'Connection': 'Keep-Alive',
  },
  credentials: 'include',

  body: JSON.stringify({

    from: 'test1@test.dk',

    to: ['<test@hotmail.com>'],

    signedByFullName: '',

    signedByCPRNumber: '',

    otherCompanyName: '',

    otherCompanyCVRNumber: ''
  })
})

}

1 Ответ

3 голосов
/ 21 марта 2019

Чтобы сохранить значения, вы можете создать массив вдоль стороны foundtextfields со значениями, и каждый раз, когда вы изменяете текст, вы устанавливаете его в индекс другого массива
Вот так:

    foundTextFields.push(
      <TextInput 
         onChangeText={(text) =>{
            let inputValues=this.state.inputValues;
            inputValues[i]=text;
            this.setState({inputValues})
         }}>
        {keyvalue_to_json.inputFields[i].placeholderText}
      </TextInput>)

OR

foundTextFields.push(
      <TextInput 
         onChangeText={(text) =>{
            keyvalue_to_json=this.state.keyvalue_to_json
            keyvalue_to_json.inputFields[i].inputValues=text;
            this.setState({keyvalue_to_json})
         }}>
        {keyvalue_to_json.inputFields[i].placeholderText}
      </TextInput>)
...