Hola, estoy tratando de obtener los valores de mi estado tan pronto como lo actualice. Pero no puedo lograr esto
Mi estado inicial se ve así:
filterData: {year: "2021", programId: "America"}Tengo una función handleDelete que elimina los valores del objeto.
const handleDeleteChips = (e, value) => { e.preventDefault(); if (chipData[0].year == value) { dispatch(updateFilterYear('')); } else { dispatch(updateFilterProgramId('')); } }Quiero que tan pronto como esté despachando, los valores de estado deberían cambiarse a esto:
filterData: {year: "", programId: "America"}Entonces, tengo la idea de que en reaccionar esto no sucede justo después de establecer el estado. El componente tiene que volver a renderizarse, por lo que he implementado useEffect. En useEffect, para capturar el cambio de valor y he hecho esto:
useEffect(()=>{ dispatch(updateFilterYear(filterData.year)); }, [filterData.year])Pero sigue sin funcionar como se esperaba. Puedo actualizar los valores de estado pero no inmediatamente. Entonces, ¿mi código dentro de useEffect es correcto?
const handleDeleteChips = (e, value) => { e.preventDefault(); if (chipData[0].year == value) { dispatch(updateFilterYear('')); setFilterData: {...filterData,year: ""} } else { dispatch(updateFilterProgramId('')); setFilterData: {...filterData, programId:""} } }Pruebe esta función... Espero que esto resuelva su problema.