Investigué un poco sobre un error que recibí en mi aplicación nativa de reacción
Advertencia: se programó una actualización (setState, replaceState o forceUpdate) desde dentro de una función de actualización. Las funciones de actualización deben ser puras, sin efectos secundarios. Considere usar componentDidUpdate o una devolución de llamada.
He investigado pero todavía no puedo entender la diferencia entre ellos. Mi idea teórica es eliminar un elemento de una matriz de objetos, pero cuando uso setState con una función de devolución de llamada, aparece el error. ¿Alguien puede indicarme la dirección correcta o mostrarme un ejemplo de cómo puedo usar componentDidUpdate ? El ejemplo de código a continuación funciona por ahora, pero creo que podría mejorarse, y creo que es por eso que recibo mi error.
Delete_Task = (e) => { this.setState(prevState => { const tasks = prevState.daily.filter(task => task.ID !== e); this.setState({daily: tasks}); }) }Debe devolver el nuevo objeto de estado en lugar de llamar a otro setState dentro de la devolución de llamada externa de setState
cambio
this.setState({daily: tasks});A
return {daily: tasks}; // OR return {...prevState, daily:tasks}