ВВОД нескольких пользовательских данных с помощью Fetch() — React Native

#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, он не работает, пожалуйста, кто-нибудь, предложите какое-нибудь решение