Как я могу разрешить вводить одни и те же данные N раз?

#javascript #html #reactjs #forms

#javascript #HTML #reactjs #формы

Вопрос:

я новичок в мире js, и мне интересно: в форме React как я могу разрешить вводить одни и те же данные N раз?

 render() {
  if (localStorage.getItem("email") === null) {
    history.push("/403");
    window.location.reload();
  } else {
    return (
      <div>
        <Header />
        <div className="panelloRegistrazione body">
          <br></br>
          <div
            class="row h-100 justify-content-md-center"
            style={{ minHeight: "83vh" }}
          >
            <div class="col-sm-12 col-md-8 col-lg-6 my-auto">
              <Jumbotron>
                <Container fluid>
                  <center>
                    <h2 style={{ color: "black" }}>Caricamento documenti</h2>
                    <FaFileUpload color="black" size="200px" />
                  </center>

                  <AvForm onValidSubmit={this.onValidSubmit}>
                    <AvField
                      autofocus
                      name="nome"
                      type="text"
                      label="Nome"
                      placeholder="Es: Mario"
                      onChange={this.handleChange("nome")}
                      errorMessage="Non sembra tu abbia inserito un nome"
                      required
                    />

                    <AvField
                      autofocus
                      name="cognome"
                      type="text"
                      label="Cognome"
                      placeholder="Es: Rossi"
                      onChange={this.handleChange("cognome")}
                      errorMessage="Non sembra tu abbia inserito un cognome"
                      required
                    />

                    <AvField
                      autofocus
                      name="luogoNascita"
                      type="text"
                      label="Luogo di nascita"
                      placeholder="Es: Palermo"
                      onChange={this.handleChange("luogoNascita")}
                      required
                    />

                    <span>Data di nascita</span>
                    <AvField
                      name="dataNascita"
                      onChange={this.handleChange("dataNascita")}
                      type="date"
                      /*min={this.state.minCheckinDate}
                                          max={this.state.checkOut}*/
                      onfocus="(this.type='date')"
                      errorMessage="Data non valida"
                      validate={{
                        required: {
                          value: true,
                          errorMessage: "Data mancante",
                        },
                      }}
                    />

                    <label>
                      Carica documento di riconoscimento
                      <br />
                      <input type="file" onChange={this.onChangeHandler} />
                    </label>

                    <center>
                      <Button type="submit" color="danger">
                        Registra
                      </Button>
                    </center>
                    <br />
                  </AvForm>
                </Container>
              </Jumbotron>
            </div>
          </div>
        </div>
        <Footer />
      </div>
    );
  }
}
  

В настоящее время это рендеринг страницы: я создал классическую форму, которая позволяет вставлять один раз, как я могу интегрировать?
В частности, я хотел бы вернуть N объектов в серверную часть.
Заранее благодарю вас за ваше время

Комментарии:

1. Не могли бы вы привести пример?

Ответ №1:

Я предполагаю, что вам нужно что-то, что есть в угловых формах. Вы можете каждый раз помещать данные формы в массив объектов формы в вашем методе onValidSubmit. что-то вроде этого:

 state = {
 formObjects: [],
 currentFormData: {nome: ''}
}

onValidSubmit = () => {
 const { formObjects, currentFormData} = this.state;
 this.setState({
  formObjects: [...formObjects, currentFormData],
  currentFormData: {nome: ''}
 })
}
  

Затем внедрите кнопку для отправки formObjects на сервер.