Смешанные поля данных полезной нагрузки в форме регистрации реакции

Я действительно новичок, чтобы реагировать я создал форму регистрации, но при публикации значения данных смешаны Я создал onchange и onsubmit, чтобы отслеживать изменения и отправлять их на внутренний сервер. но я получаю плохой запрос, потому что значения смешаны в полезной нагрузке

const Signup = ({ signup, isAuthenticated }) => {
  const [accountCreated, setAccountCreated] = useState(false);
  const [formData, setFormData] = useState({
    username: "",
    password: "",
    email: "",
    first_name: "",
    last_name: "",
    profile_type: "",
  });

 

  const { username, password, email, first_name, last_name, profile_type } = formData;

  const onChange = (e) => setFormData({ ...formData, [e.target.name]: e.target.value });

  const onSubmit = (e) => {
    e.preventDefault();

    signup(username, password, email, first_name, last_name, profile_type);
    setAccountCreated(true);
  };

  if (isAuthenticated) {
    return <Redirect to = "/" />;
  }
  if (accountCreated) {
    return <Redirect to = "/login" />;
  }

  return (
    <div className = "container mt-5">
      <h1>Sign Up</h1>
      <p>Create your Account</p>
      <form onSubmit = {(e) => onSubmit(e)}>
      <div className = "form-group">
          <input
            className = "form-control"
            type = "text"
            placeholder = "Username"
            name = "username"
            value = {username}
            onChange = {(e) => onChange(e)}
            required
          />
        </div>
        <div className = "form-group">
          <input
            className = "form-control"
            type = "password"
            placeholder = "Password"
            name = "password"
            value = {password}
            onChange = {(e) => onChange(e)}
            minLength = "6"
            required
          />
        </div>
        <div className = "form-group">
          <input
            className = "form-control"
            type = "email"
            placeholder = "Email*"
            name = "email"
            value = {email}
            onChange = {(e) => onChange(e)}
            required
          />
        </div>
        <div className = "form-group">
          <input
            className = "form-control"
            type = "text"
            placeholder = "First Name*"
            name = "first_name"
            value = {first_name}
            onChange = {(e) => onChange(e)}
            required
          />
        </div>
        <div className = "form-group">
          <input
            className = "form-control"
            type = "text"
            placeholder = "Last Name*"
            name = "last_name"
            value = {last_name}
            onChange = {(e) => onChange(e)}
            required
          />
        </div>
        <div className = "form-group">
          <select
            className = "form-control"
            name = "profile_type"
            onChange = {(e) => onChange(e)}
            required            
          >
            <option value = "">--------</option>
            <option value = "STD">
              Student
            </option>
            <option value = "PRF">
              Professor
            </option>
          </select>
        
        </div>
        <button className = "btn btn-primary" type = "submit">
          Register
        </button>
      </form>
      <p className = "mt-3">
        Already have an account? <Link to = "/login">Sign In</Link>
      </p>
    </div>
  );
};

const mapStateToProps = (state) => ({
  isAuthenticated: state.auth.isAuthenticated,
});

export default connect(mapStateToProps, { signup })(Signup);

и когда я отправляю, это то, что я получаю в полезной нагрузке все значения смешаны, но адрес электронной почты и тип профиля верны Как я могу это исправить?

{username: "lastname", password: "firstname", email: "[email protected]", first_name: "username1",…}
email: "[email protected]"
first_name: "username1"
last_name: "Password"
password: "firstname"
profile_type: "STD"
username: "lastname"

быть таким

{username: "username1", password: "Password", email: "[email protected]", first_name: "firstname",…}
email: "[email protected]"
first_name: "firstname"
last_name: "lasttname"
password: "Password"
profile_type: "STD"
username: "username1"
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
0
0
33
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Попробуйте проверить порядок параметров в методе регистрации .. или попробуйте этот код (e) => setFormData({...formData, property name: e.target.value}) в методе по изменению в каждом входе.

Другие вопросы по теме