这是我的第一个堆栈溢出帖子,所以我希望我解释得这么好。我在向api提取请求时遇到问题。它返回正确的数据。但是,我认为问题在于返回的promise是异步的,以及调用fetch的函数。 handleSubmitLogin是我的Login组件的回调函数。
handleSubmitLogin = (loginInformation) => {
var userInfo = this.getUser(loginInformation);
this.setState({loggedIn:true, currentUser:userInfo})
}
getUser(loginInformation) {
fetch('http://localhost:3001/api/getUser', {
body: JSON.stringify(loginInformation),
cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached
credentials: 'same-origin', // include, *omit
headers: {
'content-type': 'application/json'
},
method: 'POST', // *GET, PUT, DELETE, etc.
mode: 'no cors', // no-cors, *same-origin
})
.then( (res) => {
var userInfo = res.json();
console.log(userInfo)
return userInfo
})
}
基本上,我知道它正在尝试使用userInfo来设置state,因为promise是挂起的。我尝试在.then中运行setState,但这导致React因某种原因刷新页面。
任何帮助将不胜感激,如果您需要查看更多代码,请告诉我们!谢谢!