[英]useSelector not updating after dispatching an action React Redux
[英]Updating Store after Dispatching an Action
我有一個社交媒體網站,用戶可以在其中喜歡/不喜歡帖子。 我有一個用於用戶和帖子的減速器。 我的隊友實現了喜歡/不喜歡的功能如下:每當用戶喜歡一個帖子時,客戶端調用我的 API ENDPOINT 'posts/:id/like',這將增加帖子數據庫中帖子的喜歡計數並添加用戶數據庫中用戶喜歡的帖子數組的帖子。 API 將返回包含更新的用戶和帖子的響應,這將導致以下操作。
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 狀態代碼但有錯誤,例如用戶未在后端更新但在前端您假設用戶已更新。 因此,它會在前端導致錯誤的數據。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.