oye, ¿cómo puedo eliminar un objeto de una matriz agrupada? mi matriz agrupada se parece a la imagen, está agrupada por fecha y quiero eliminar un elemento de mi función:
const [inCard, setInCard] = useState(0); const [events, setEvents] = useState([]); const [eventsInCard, setEventsInCard] = useState([]); function addToCard(event) { if (!eventsInCard.some((e) => e._id === event._id)) { setEventsInCard([...eventsInCard, event]); newValueInCard++; setEvents((events) => events.filter((item) => item._id === event._id)); //<= not working because its an object } setInCard(newValueInCard); }Puede crear un asistente para eliminar la clave y usarla en el estado anterior, así:
const removeKey = (key, { [key]: _, ...rest }) => rest; ... ... setEvents(prev => removeKey(event._id, prev)); // If event._id is datetime-like key you want to delete, otherwise replace it with appropriate oneACTUALIZADO
Si desea actualizar la matriz dentro del objeto (bajo alguna clave similar a una fecha), puede hacerlo de esta manera:
const dateKey = event.somePropFromEvent; // YOU NEED TO KNOW UNDER WHICH KEY IS ARRAY YOU WANT TO MODIFY const id = event._id; setEvents(prev => ({...prev, [dateKey]: prev[dateKey].filter(x => x._id !== id)}));