Skip to content

ehynds/use-change-effect

Repository files navigation

useChangeEffect

build status

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.

Installation

$ npm install --save @ehynds/use-change-effect

# or

$ yarn add @ehynds/use-change-effect

Usage

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]
);

About

Run an effect when a value changes

Resources

License

Stars

Watchers

Forks

Packages

No packages published