Как конвертировать fetch в ax ios в raect js? - PullRequest
0 голосов
/ 26 апреля 2020

Как я только что знаю, бази c из топора ios и не могу преобразовать эту выборку в метод топора ios. У меня есть следующий кусок кода, который работает отлично, я в замешательстве, мне нужно использовать Json .stringify или любой другой метод json, поскольку то, что я прочитал, это топор ios do автоматически преобразует в json здесь мой код

const handleFormSubmit = event => {
    event.preventDefault();
    setData({
      ...data,
      isSubmitting: true,
      errorMessage: null
    });
    fetch("https://hookedbe.herokuapp.com/api/login", {
      method: "post",
      headers: {
        "Content-Type": "application/json"
      },
      body: JSON.stringify({
        username: data.email,
        password: data.password
      })
    })
      .then(res => {
        if (res.ok) {
          return res.json();
        }
        throw res;
      })
      .then(resJson => {
        dispatch({
            type: "LOGIN",
            payload: resJson
        })
      })
      .catch(error => {
        setData({
          ...data,
          isSubmitting: false,
          errorMessage: error.message || error.statusText
        });
      });
  };

меняя его на топор ios

const url = "https://hookedbe.herokuapp.com/api/login"
const body = {
    username: data.email,
    password: data.password
};
axios.post(url, body)
  .then(res => {
      dispatch({
          type: "LOGIN",
          payload: res.data
      })
  })
  .catch(error => {
      console.log(error);
  })

1 Ответ

0 голосов
/ 26 апреля 2020

Вы можете использовать axios.post, намного более простой синтаксис и не нужно никаких json преобразований:

const payload = {
    username: data.email,
    password: data.password
};
axios.post("https://hookedbe.herokuapp.com/api/login", payload)
  .then(res => {
      dispatch({
          type: "LOGIN",
          payload: res.data
      })
  })
  .catch(error => {
      console.log(error);
  })
...