POST несколько пользовательских входов с Fetch () - React Native - PullRequest
0 голосов
/ 19 марта 2019

Я получаю документы и данные из 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>) &&
          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 && 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

      })
    })
  }
...