es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Actualizando la Tienda después de Despachar una Acción.

Tengo un sitio web de redes sociales donde los usuarios pueden dar “Me gusta”/”No me gusta” a las publicaciones. Tengo un “reducer” para el usuario y las publicaciones. Mi compañero de grupo implementó la función de “Me gusta”/”No me gusta” de la siguiente manera: cuando el usuario le da “Me gusta” a una publicación, el cliente llama a mi API con el “ENDPOINT” ‘posts/:id/like’, lo que incrementará el conteo de “Me gusta” para la publicación en la base de datos de publicaciones y agregará la publicación al arreglo de publicaciones que le gustaron al usuario en la base de datos de usuarios. La API devolverá una respuesta que contiene el usuario y la publicación actualizados, lo que resultará en las siguientes acciones.

dispatch({
            type: LIKEPOSTSUCCESS,
            payload: res.payload.post
        })

    dispatch({
        type: UPDATE_USER_SUCCESS,
        payload: res.payload.user
    })


Y los siguientes “reducers”:

case LIKE_POST_SUCCESS:
return {
…state,
…action.payload
}
case UPDATE_USER_SUCCESS:
return {
…state,
…action.payload
}

Este enfoque funciona, pero siento que su enfoque parece “hackish” en el sentido de
1. La solicitud de la API también devuelve el usuario actualizado junto con la publicación actualizada, aunque el ENDPOINT se utiliza para la base de datos de publicaciones.
2. Él está despachando “UPDATE_USER_SUCCESS” para actualizar el objeto de usuario en el almacenamiento de “Redux”, aunque la API de actualización de usuario no se llama.

¿Sería el enfoque correcto
1. Llamar la solicitud de “Me gusta” a la publicación
2. Actualizar el almacenamiento de publicaciones usando la carga útil de la solicitud de “Me gusta” a la publicación.
3. Realizar una solicitud “GET” a la base de datos de usuarios
4. Actualizar el almacenamiento de usuarios usando la carga útil de la solicitud “GET”.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Sí, el enfoque correcto sería:

    1. Llamar a la solicitud de Me gusta en Publicación
    2. Actualizar la tienda de publicaciones utilizando la carga útil de la solicitud de Me gusta en Publicación
    3. Realizar una solicitud “GET” a la base de datos de usuarios
    4. Actualizar la tienda de usuarios utilizando la carga útil de la solicitud “GET”.

Comments are closed.