我有一个社交媒体网站,用户可以在这里喜欢/不喜欢帖子。我有一个减速器为用户和帖子。我的队友实现了点赞/不点赞功能,如下所示:每当用户喜欢某个帖子时,客户端都会使用ENDPOINT调用我的API"posts/:id/like",这将增加帖子数据库中该帖子的点赞计数,并将该帖子添加到用户数据库 以及以下减速器 这种方法是有效的,但我觉得他的方法在中似乎很粗糙 正确的方法是吗dispatch({
type: LIKE_POST_SUCCESS,
payload: res.payload.post
})
dispatch({
type: UPDATE_USER_SUCCESS,
payload: res.payload.user
})
case LIKE_POST_SUCCESS:
return {
...state,
...action.payload
}
case UPDATE_USER_SUCCESS:
return {
...state,
...action.payload
}
根据您的问题,需要做的基本上是当用户喜欢帖子时,应该首先更新帖子数据库,只有在成功响应后,您才能更新用户数据库。因此,你提到的方法似乎是正确的。
是的,我同意你的方法,是的,他的方法很粗糙
IMO,如果POST失败,他将继续发送到存储。这将导致错误的数据。或者,如果后端api返回201状态代码,但有错误,例如用户没有在后端更新,但在前端更新,则假设用户已更新。因此,这将导致前端数据错误。