Php 为什么fetch POST返回React中API调用的挂起状态
我正在尝试创建一个“反应”按钮,以从服务器发布/检索数据。 我已经完成了发布和检索,但问题是,每当我发布时,如果我检查开发人员工具,就会显示api调用挂起。如果我刷新页面,就会得到新数据 这是我的帖子:Php 为什么fetch POST返回React中API调用的挂起状态,php,reactjs,Php,Reactjs,我正在尝试创建一个“反应”按钮,以从服务器发布/检索数据。 我已经完成了发布和检索,但问题是,每当我发布时,如果我检查开发人员工具,就会显示api调用挂起。如果我刷新页面,就会得到新数据 这是我的帖子: getId = async(reaction) => { let eSlug = this.state.slug; let data = { reactiond: reaction, eSlugd: eSlug
getId = async(reaction) => {
let eSlug = this.state.slug;
let data = {
reactiond: reaction,
eSlugd: eSlug
}
await fetch("http://localhost:9000/react/",
{
method: "post",
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify(data)
}).then(response => response.json())
.then(data => {
console.log(data)
});
}
我的反应是:
<div className="row">
<div className="col-all">
<button className="emoji-static">
<span className="emoji-like">Like</span>
<span className="emoji-container">
<span className="emoji cool zoom" onClick={this.getId.bind(null,"1")}>
<img className="svg" src="/img/svg/cool.svg" alt="Cool" />
<span className="counter">{this.state.coolReaction}</span>
</span>
<span className="emoji love zoom" onClick={this.getId.bind(null,"2")}>
<img className="svg" src="/img/svg/love.svg" alt="Love" />
<span className="counter">{this.state.loveReaction}</span>
</span>
<span className="emoji laugh zoom" onClick={this.getId.bind(null,"3")}>
<img className="svg" src="/img/svg/laugh.svg" alt="Laugh" />
<span className="counter">{this.state.laughReaction}</span>
</span>
<span className="emoji sad zoom" onClick={this.getId.bind(null,"4")}>
<img className="svg" src="/img/svg/sad.svg" alt="Sad" />
<span className="counter">{this.state.sadReaction}</span>
</span>
<span className="emoji zoom" onClick={this.getId.bind(null,"5")}>
<img className="svg" src="/img/svg/angry.svg" alt="Angry" />
<span className="counter">{this.state.angryReaction}</span>
</span>
</span>
</button>
</div>
</div>
喜欢
{this.state.coolReaction}
{this.state.loveReaction}
{this.state.laughtreaction}
{this.state.sadReaction}
{this.state.angryReaction}
我不明白为什么它被挂起,正因为如此,我没有为console.log获得任何东西
你能给我指一下正确的方向吗?我是React的初学者,来自PHP。我高度相信这里的错误是因为错误地使用了async/await和promises 履行承诺时要牢记的事项
- 无论何时使用
或同步
,都要使用承诺阻塞代码
- 确保同时编写
和.catch
。然后为所有承诺编写
方法
- 如果要在完成所有操作后执行某项操作,请使用
。最后使用
- Promise对象中所有方法的返回类型,无论它们是静态方法还是原型方法,都是
Promise。
- 异步函数返回一个承诺
- 异步函数使用隐式承诺返回结果。即使没有显式返回
,promise
函数也会确保代码通过promise传递async
在await
函数中阻止代码执行,而async
await语句是该函数的一部分
语句可以在一个await
函数中重载async
承诺
,也教授异步/等待
。。。但从基本的角度来说,你需要理解的是,当你async/await
不使用承诺,当你使用promissions
不使用async/await
时,在两者之间选择一个。问题是,在发布帖子时,我没有从后端返回任何内容,我已经修复了这一点,现在一切都正常。感谢您的解释,我们将在未来尝试了解更多。