Tengo una tasks variable de estado, que es una matriz de objetos:
const [tasks, setTasks] = useState([ { user: "", text: "Finish this page", deadline: new Date("05/01/2022"), complete: true, priority: "high", project: "Gravity", // ToDo: Set priority based on date while creating task }, { text: "Finish Pierian UI/UX", deadline: new Date("05/10/2022"), complete: false, priority: "med", }, { text: "Finish Internship", deadline: new Date("05/05/2022"), complete: false, priority: "low", }, { text: "Anaadyanta", deadline: new Date("05/12/2022"), complete: false, priority: "med", }, { text: "Random task", deadline: new Date("05/19/2022"), complete: false, priority: "high", }, ]); Quiero eliminar elementos cuyo complete sea true . No puedo pensar en la sintaxis correcta mientras uso setTasks . Por favor ayuda.
Debe filtrar tareas y establecer un nuevo estado:
const updatedTasks = tasks.filter((el)=> el.complete !== 'true'); setTasks(updatedTasks);debe pasar la devolución de llamada dentro de setTasks:
setTask((prevTasks) => prevTasks.filter(({ complete }) => !complete));Las tareas previas siempre serán el último estado, React lo asegura. Siempre debe usar la devolución de llamada cuando el siguiente estado se basa en el anterior. Además, el nombre de la variable anterior pasada en la devolución de llamada podría ser el que elija, aquí lo llamé prevTasks.