【发布时间】:2019-11-09 23:13:24
【问题描述】:
当用户单击按钮时,我正在尝试在我的 react 应用程序的客户端中显示使用 mongoose 存储的集合属性的值。
通过在单击时检索值并使用 setState 存储该值。
我的问题 -- 我似乎无法在单击时立即设置状态并显示新值... 在下一次点击时,显示的值是上一次点击的值。
我用于从 mongodb 获取数据的后端 node.js 代码
app.post('/api/showengagement', async (req, res) => {
const result = await Post.findOne({url: req.body.url}, "likes");
res.send(result);
})
我的前端 react.js 代码用于处理 onClick 并显示获取的数据
handleLike(url, e){
if (e.target.innerText.toLowerCase() === "like"){
axios.post('/api/showengagement', {url: url})
.then(res => this.setState({
likeEngage: res.data.likes
}));
e.target.innerText = `This post has ${this.state.likeEngage} like(s)`
axios.post('/api/incrementlikes', {url: url});
}
else{
e.target.innerText = "Like";
axios.post('/api/decrementlikes', {url: url});
}
}
感谢您的帮助!
【问题讨论】:
标签: javascript node.js reactjs axios