react-save-refs

WebJar for react-save-refs

License

License

MIT
Categories

Categories

React User Interface Web Frameworks
GroupId

GroupId

org.webjars.npm
ArtifactId

ArtifactId

react-save-refs
Last Version

Last Version

1.0.2
Release Date

Release Date

Type

Type

jar
Description

Description

react-save-refs
WebJar for react-save-refs
Project URL

Project URL

http://webjars.org
Source Code Management

Source Code Management

https://github.com/AgentME/react-save-refs

Download react-save-refs

How to add to project

<!-- https://jarcasting.com/artifacts/org.webjars.npm/react-save-refs/ -->
<dependency>
    <groupId>org.webjars.npm</groupId>
    <artifactId>react-save-refs</artifactId>
    <version>1.0.2</version>
</dependency>
// https://jarcasting.com/artifacts/org.webjars.npm/react-save-refs/
implementation 'org.webjars.npm:react-save-refs:1.0.2'
// https://jarcasting.com/artifacts/org.webjars.npm/react-save-refs/
implementation ("org.webjars.npm:react-save-refs:1.0.2")
'org.webjars.npm:react-save-refs:jar:1.0.2'
<dependency org="org.webjars.npm" name="react-save-refs" rev="1.0.2">
  <artifact name="react-save-refs" type="jar" />
</dependency>
@Grapes(
@Grab(group='org.webjars.npm', module='react-save-refs', version='1.0.2')
)
libraryDependencies += "org.webjars.npm" % "react-save-refs" % "1.0.2"
[org.webjars.npm/react-save-refs "1.0.2"]

Dependencies

compile (1)

Group / Artifact Type Version
org.webjars.npm : lodash jar [4.3.0,5)

Project Modules

There are no modules declared in this project.

react-save-refs

GitHub license npm version CircleCI Status Greenkeeper badge

This is a small utility function to make it easy for React components to deal with refs on dynamically created elements.

This package is deprecated in favor of react-multi-ref. Its API is better and avoids the need for a WeakMap internally.

The following example code assumes Babel with support for classes, JSX, and property initializers is in use. You can get that by using the es2015, stage-1, and react presets together.

import React from 'react';
import saveRefs from 'react-save-refs';

class Foo extends React.Component {
  _items = new Map();

  render() {
    const items = new Array(5).fill(null).map((n, i) =>
      <div key={i}>
        <input type="text" ref={saveRefs(this._items, i)} />
      </div>
    );
    return (
      <div>
        <button onClick={this._onClick}>Alert</button>
        { items }
      </div>
    );
  }

  _onClick = () => {
    let parts = [];
    this._items.forEach(input => {
      parts.push(input.value)
    });
    alert('all inputs: ' + parts.join(', '));
  };
}

A reference to each input element is stored as a value in the _items property in the above example.

The first argument to saveRefs must be the map to store the reference in, and the second argument is the key to store the reference under. Subsequent calls to saveRefs with the same arguments will return the same function until the element is unmounted, so React knows that it doesn't need to call the ref callback with null and then the element on every re-render.

This relies on Map and WeakMap being available globally. A global polyfill such as Babel's polyfill is required to support older browsers that don't implement these.

Types

Both TypeScript and Flow type definitions for this module are included! The type definitions won't require any configuration to use.

Versions

Version
1.0.2