use-clear-effect is react hook allowing get previous dependency values from effect.
npm install --save use-clear-effect
yarn add use-clear-effect
import { default as React, useState, useCallback } from "react";
import useClearEffect from "use-clear-effect";
export default function App() {
const [fooValue, setFooValue] = useState("");
const [barValue, setBarValue] = useState("");
const [result, setResult] = useState({});
useClearEffect(
prev => {
const resultObj = {
current: {
description: "Current state values",
fooValue,
barValue
},
previous: {
description: "Previous state values",
fooValue: prev[0],
barValue: prev[1]
},
changed: {
description: "True if previous value is not equal current value",
fooValue: fooValue !== prev[0],
barValue: barValue !== prev[1]
}
};
setResult(resultObj);
},
[fooValue, barValue]
);
return (
<div></div>
);
}
See contributing guideline.