Регистрация пользователя с помощью React, Axios и PHP backend - PullRequest
0 голосов
/ 16 марта 2019

Я новый в Реакте, пожалуйста, помогите мне.Мне нужно зарегистрировать нового пользователя в API. Разработчик дал мне скриншот того, как он реализовал регистрацию на php. К сожалению, он не знает, как реагировать, поэтому он не может мне помочь.У меня уже есть формы ввода, сохраняющие их в состоянии.Не могли бы вы помочь мне, что происходит на картинке ниже и как сделать регистрацию на React.

enter image description here

и мой код.Дайте мне знать, если я пропустил какое-либо поле.У меня есть URL, но я не знаю, куда добавить пользователя / создать, компании / создать ссылки:

signUp(event) {
    event.preventDefault()
    const formdata = new FormData()
    formdata.append("email", this.state.userLogin.email)
    formdata.append("password", this.state.userLogin.password)
    formdata.append("name", this.state.userLogin.name)
    formdata.append("companyName", this.state.userLogin.companyName)
    formdata.append("region", this.state.userLogin.region)
    axios
      .post("http://dev.***********.com/", formdata)
      .then(res => {
        if (res.data) {
          console.log('success')
          this.props.history.push("/settings")
        }
      })
      .catch(error => {
        console.log(error)
      })
  }

Ответы [ 2 ]

0 голосов
/ 25 марта 2019

PHP-скрипт обнуляет ключ username в POST.

В коде Rect вы должны передать ключ username.

Я думаю, что имя пользователя - это электронная почта в вашем случае, но вы должны подтвердить это.
Попробуйте изменить ключ электронной почты по имени пользователя, например:

formdata.append("username", this.state.userLogin.email)

Есть еще 2недостающие ключи в скрипте PHP label и label_short для создания компании и добавления пользователя в них после.Я думаю, что это относится к companyName

Так что попробуйте тоже изменить этот ключ:

formdata.append("label", this.state.userLogin.companyName);
formdata.append("label_short", this.state.userLogin.companyName);
0 голосов
/ 18 марта 2019

вам не хватает некоторых полей для почтового запроса, но вот как бы я это сделал:

const data = {
  username: YOU_NEED_THIS,
  label: YOU_NEED_THIS,
  label_short: YOU_NEED_THIS,

  email: this.state.userLogin.email,
  password: this.state.userLogin.password,
  name: this.state.userLogin.name,
  companyName: this.state.userLogin.companyName,
  region: this.state.userLogin.region,
};

axios
  .post("http://dev.***********.com/", data)
  .then(.....)
...