我怎样才能在 react redux-toolkit 中实现这一点?

How can I achive this in react redux-toolkit?

因此,我在页面中映射了 posts 数组。当我点击每个 post 时,它将以模式打开。

Posts 有一个喜欢的按钮,所以我希望当用户喜欢 post 时它以模式打开它会自动更新 post 喜欢该提要中的所有状态post 已映射。

现在,当我喜欢 post 时,我会在负载中收到以下响应:

{
   id: "620ca78f3b36d45714ca4c1e"
   postId: "6dks2b92bjd99sndkd9j3",
   liked: true
   msg: "You liked the post."
   success: true
}

现在的问题是如何从 post 数组更新 likes 数组。

单一Post结构

{
   _id,
   ...other,
   likes: [],
}
const updatedPost = (find that specific post from the array using the postId I recieved and update its likes array)
return {
        ...state,
        loading: false,
        error: null,
        post: [...state.posts, updatedPost],
        data: payload,
      };

首先,您必须通过 ID 或您正在使用的任何唯一实体找到特定 post 的索引。然后通过向其分配新的 post 详细信息来更改该索引处的 posts 数组。

const postIndex = state.posts.findIndex((p)=>p.id===payload.id);
let posts=[...state.posts];
if(postIndex!=-1){
    posts[postIndex]=updatedPost; // updatedPost Object whatever you want to change
    // for appending likes i.e.,
    // posts[postIndex].likes.push('id') // sample
  
}
state.loading=false; // use this scheme for updating state
state.error=null;
state.posts=posts;
state.data=payload;