Estoy luchando para que un mini proyecto mío se muestre de manera optimista cuando un usuario intenta eliminar un comentario propio. Actualmente, la variedad de comentarios está descendiendo en accesorios de un componente principal, y antes de eso es del backend. Estoy tratando de obtenerlo para que el comentario se elimine instantáneamente, en lugar de esperar un código 204 exitoso desde el backend. Tengo problemas con él y no estoy seguro de por qué. Publicaré un fragmento de código a continuación para obtener la información relevante.
Cuando el usuario hace clic, trato de filtrar los comentarios actuales, eliminar el comentario relevante por ID de comentario y luego establecer el estado de todos los comentarios usando esta nueva matriz "filtrada". Cualquier ayuda sería genial.
La matriz filtrada parece aparecer en la página durante una fracción de segundo y luego vuelve a la matriz de comentarios no eliminada, y no estoy seguro de por qué. Intenté envolverlo en un efecto de uso con los comentarios como una dependencia.
Espero que eso tenga sentido, ¡cualquier ayuda es apreciada!
const handleDeleteClick = (commentId) => { if (loggedInUser === comment.author) { const filtered = currComments.filter((commentToDelete) => { return commentToDelete.comment_id !== commentId }); setAllComments(filtered); deleteComment(comment.comment_id) .then((statusCode) => { if (statusCode === 204) { alert("succesfully deleted comment"); } }) .catch((err) => { alert("Something went wrong, please try again.") }); } else .....