Tengo un método AsyncThunk llamado likePost
cuando un usuario hace clic en Me like
en una publicación, enviará esta acción a través del envío. El método funciona bien, y en mi base de datos, la Post
se actualiza con éxito, pero no puedo hacer que Redux actualice la publicación que me gusta durante el método .fulfilled
.
Esto es con lo que estoy trabajando actualmente:
// shoes = [{_id: '', title: '', likes: []}, ...{}] export const likePost = createAsyncThunk( 'posts/likePost', async (payload, { rejectWithValue }) => { try { const response = await userTokenAxios.post(`/${payload}/like`); return response.data; } catch (error) { return rejectWithValue(error.response.data); } } ); [likePost.fulfilled]: (state, action) => { const post = state.posts.find((post) => post._id === action.payload._id); post.likes.push(action.payload.user); },
En lugar de encontrar la publicación, obtenga el índice de ese objeto en state.posts const post = state.posts.find((post) => post._id === action.payload._id);
const postIndex=state.posts.findIndex((post)=> post._id === action.payload._id);
Ahora puede empujar al user
en la matriz de Me gusta:
state.posts[postIndex].likes.push(action.payload.user)