Run an effect when a value changes. Useful when you want to:
- Know when a prop, state, or other value changes.
- Know what the previous value was.
- Avoid running the effect on mount.
$ npm install --save @ehynds/use-change-effect
# or
$ yarn add @ehynds/use-change-effect
import { useChangeEffect } from '@ehynds/use-change-effect';
const Component = ({ loading }) => {
useChangeEffect(
(prevLoading) => {
console.log(`loading changed from ${prevLoading} to ${loading}`);
},
[loading]
);
...
}
If the dependencies
array contains multiple values, each previous value is passed to the effect as separate arguments:
useChangeEffect(
(prevLoading, prevError) => {
console.log('loading and/or error changed', { prevLoading, prevError });
},
[loading, error]
);