@mnq54482

Как получить значение из promise?

Делаю запрос на сервер https://reqres.in/api/login
Мой state:
"email": "eve.holt@reqres.in",
    "password": "cityslicka"
    "token":""

И собственно, сам код:
fetch("https://reqres.in/api/login", {
        method: "POST",
        body: JSON.stringify({
          email: state.email,
          password: state.password,
        }),
        headers: { "Content-Type": "application/json" },
      })
        .then((response) => {
          if (response.status !== 200) {
            return Promise.reject();
          }
          return response.json();
        })
        .then(res => state.token = res)


Собственно, вопрос - почему последний then не работает так, как хотелось бы и state не меняется? Если вывести console.log(res), то результат с токеном появляется. Как я могу изменить state?
  • Вопрос задан
  • 719 просмотров
Пригласить эксперта
Ответы на вопрос 2
IceRD
@IceRD
https://ru.reactjs.org/docs/hooks-intro.html
Ознакомьтесь с основами React, а именно с хуком useState
Ошибка в корректности изменения состояния (изменение по ссылке не работает)
Ответ написан
Последний then прекрасно работает
fetch("https://baconipsum.com/api/?type=meat-and-filler", )
  .then((response) => {
    if (response.status !== 200) {
      return Promise.reject();
    }
    return response.json();
  })
  .then(res => console.log("res", res))

Кусок кода
state.token = res
В реакте не имеет смысла
Читай как меняется стейт
https://reactjs.org/docs/state-and-lifecycle.html
https://reactjs.org/docs/hooks-state.html
Чтобы писать на реакте нужно хотябы раз прочитать документацию, это не сложно
https://reactjs.org/docs/getting-started.html
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы