Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

react-update-checker

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

react-update-checker

Console warnings for when a React component updates even though the props/state are deeply equal.

  • 0.1.1
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

react-update-checker Build Status

Console warnings for when a React component updates even though the props/state are deeply equal.

Example image

Install

$ npm install react-update-checker

Usage

For components that extend React.PureComponent, simply change the parent class to ReactUpdateChecker instead.

import ReactUpdateChecker from 'react-update-checker';

- class MyComponent extends React.PureComponent { }
+ class MyComponent extends ReactUpdateChecker { }

The above also works for components extending React.Component but do not implement a shouldComponentUpdate method.

If your component does have a shouldComponentUpdate method, extend the ReactUpdateChecker class and call the super method as the first statement in your shouldComponentUpdate

import ReactUpdateChecker from 'react-update-checker';

- class MyComponent extends React.Component {
+ class MyComponent extends ReactUpdateChecker {

    shouldComponentUpdate(newProps, newState) {
+     super.shouldComponentUpdate(newProps, newState);

      // existing shouldComponentUpdate logic here
    }
}

API

When process.env.NODE_ENV === 'production', the default export of this package will simply be React.PureComponent. This prevents blasting the console messages unexpectedly in a production environment.

ReactUpdateChecker

import { ReactUpdateChecker } from 'react-update-checker';

class MyComponent extends ReactUpdateChecker {}

The named export is identical to the default export, except it always returns the custom class, regardless of process.env.NODE_ENV.

getFailedKeys(object1, object2)

import { getFailedKeys } from 'react-update-checker';

const sameReference = {};

const oldProps = {
  id: 'some-id',
  letters: ['a', 'b', 'c'],
  obj: sameReference
};

const newProps = {
  letters: ['a', 'b', 'c'],
  obj: sameReference
};

getFailedKeys(oldProps, newProps);
// => ['letters']

Given 2 objects, returns a list of property keys where the corresponding values are deeply equal but not shallowly equal. These are typically the prop/state items that need to be adjusted to avoid a re-render. Note that this only checks properties that are common between both objects. Any new or removed properties are not included in the return value.

isShallowEqual(object1, object2)

import { isShallowEqual } from 'react-update-checker';

isShallowEqual({ foo: 'bar' }, { foo: 'bar' });
// => true

Given 2 objects, returns whether or not all top-level properties are equal. This is the exact same shallow comparison that is done by React.PureComponent, just re-exported in this module for convenience.

What about why-did-you-update?

You should probably just use that project instead. I originally needed something more targeted (no monkey-patching React) and needed it to be painfully obvious which prop/state names were causing the problem.

License

MIT

FAQs

Package last updated on 16 Apr 2018

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc