Функция onSubmit не вызывается даже после нажатия на кнопку отправить

#javascript #reactjs #material-ui #react-hook-form

Вопрос:

Я новичок в реакциях. Я только что написал этот код, и функция onSubmit не работает. Я не понимаю, является ли это ошибкой регистрации или отправки формы.Может быть ошибка в этой строке, где записан тег формы.
Пожалуйста, направьте и дайте мне знать о решениях.версия react-hook-формы-7.14 Версия
React-17.02

FieldArray.js

 import React, { Fragment } from "react";
import { useForm } from "react-hook-form";
function FieldArray() {
  const { register, handleSubmit } = useForm();
  const basicform = (
    <div className="card">
      <div className="card-header">Basic Information</div>

      <div className="card-body">
        <div>
          <div className="form-group">
            <label htmlFor="fullname">Full Name</label>
            <input
              type="text"
              className="form-control"
              id="fullname"
              name="fullname"
              {...register("fullname")}
            />
          </div>
          <div className="form-group">
            <label htmlFor="email">Email address</label>
            <input
              type="email"
              className="form-control"
              id="email"
              name="email"
              {...register("email")}
            />
          </div>
          <div className="form-group">
            <label htmlFor="phone">Phone Number</label>
            <input
              type="text"
              className="form-control"
              id="phone"
              name="phone"
              {...register("phone")}
            />
          </div>
          <div className="form-group">
            <label htmlFor="password">Password</label>
            <input
              type="password"
              className="form-control"
              id="password"
              name="password"
              {...register("password")}
            />
          </div>
        </div>
      </div>
    </div>
  );

  const onSubmit = data => {
      console.log('hjhhhh');
      console.log(data);
  }

  return (
    <div className="App">
      <div className="container py-5">
        <form onSubmit={handleSubmit(onSubmit)}>{basicform}</form>
        <button className="btn btn-primary" type="submit">Submit</button>
      </div>
    </div>
  );
}

export default FieldArray;
 

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

1. Ваша кнопка «Отправить» находится за пределами <form>

Ответ №1:

Мы должны завернуть кнопку «Отправить» внутри тега формы

 <form onSubmit={handleSubmit(onSubmit)}>
          {basicform}
          <button className="btn btn-primary" type="submit">
            Submit
          </button>
        </form>
 

Песочница — https://codesandbox.io/s/silly-cori-t94eu?file=/src/react-hook-form.jsx