Estoy tratando de mantener un valor anterior que se actualiza constantemente a través de mi tienda usando el enlace useRef como se muestra a continuación, sin embargo, el valor de referencia a veces no está definido, aunque solo lo configuro cuando existe el valor.
const price = useSelector(getPrice(props.index)); let prevPriceRef = useRef(); useEffect(() => { if(price) { prevPriceRef.current = price; } }, [ price ])console.log(prevPriceRef.current) a veces devuelve indefinido, ¿quién es posible?
Cree un gancho separado para manejar/registrar el valor anterior
function usePrevious(value) { const ref = useRef(); useEffect(() => { ref.current = value; }, [value]); return ref.current; }Úsalo llamando
const prevPrice = usePrevious(price); Una cosa a tener en cuenta, está verificando if (price) {} , que no se ejecutará si su precio es 0 => Cero y devolverá indefinido ya que no establecerá el valor actual en la referencia.