Я пытаюсь установить состояние внутри React, когда получаю ответ от бэкэнда (http post method). Я собираюсь отправить данные на сервер, а затем, когда вернусь, я хочу установить для свойства isSubmitting
значение false. это сказанное, мое состояние не полагается на ответные данные -> только на статус ответа. Как я могу установить состояние, когда ответ вернулся?
Я не хочу просто console.log этого контента, я хочу сделать this.setState({ isSubmitting })
, когда контент будет готов.
Я думал о чем-то вроде:
if (content) { this.setState({ isSubmitting }) }
но не знаю, что правильно.
(async () => {
const rawResponse = await fetch('https://httpbin.org/post', {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify({a: 1, b: 'Textual content'})
});
const content = await rawResponse.json();
console.log(content);
})();
Я решил проблему, заменив async / await на Promises:
return fetch('https://httpbin.org/post', {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify(blabla)
})
.then(resp => resp.json())
.then(resp => console.log(resp));
Так что теперь я могу установить State в последней строке. Но мне все еще интересно, как это работает с обещаниями.