Skip to research

Unique ID pour les listes d'élément dans REACT Js avec Uuid

Image
Illustration for uuid plugin
Temps de lecture
Environ 1 minutes
Étiquettes

Pour obtenir un unique Id (Uuid) dans React, il y a plusieurs solutions.

La solution du Timestamp
Que je ne n'utilise pas, étant donné que je considère que plusieurs utilisateurs peuvent ajouter un élément de liste en DB à une même table et en même temps, ce qui pourrait créer des conflits.

La solution nombre d'élément de la liste + 1
A utiliser dans des cas où, un Id est nécessaire temporairement.

La solution Uuid
Uuid est un plugin, qui, comme sa description l'indique, génère simplement et rapidement des unique id RFC4122.

Alors, si l'on travaille sur un projet REACT, nous avons installé sur notre machine, Node Js et React.

Installons Uuid

Plaçons nous dans le dossier de notre projet, puis :

npm install uuid


Dans le cas d'un projet REACT, nous allons importer notre plugin et non le requérir().
 

// Version 4 (random):
const uuidv4 = require('uuid/v4');
uuidv4(); // ⇨ '10ba038e-48da-487b-96e8-8d3b99b6d18a'


Selon la documentation, pour obtenir un id en mode Random, nous utilisons la Version 4.
 

import React, {Component} from 'react';
import Formulaire from './desk/Formulaire';
import ItemList from './desk/ItemList';
// J'importe mon plugin
import Uuid from 'uuid/v4';

class App extends Component {

  state = {
    articles : []
  }

  addArticle = (article) => {
    let oldArticles = this.state.articles;
    // J'utilise mon plugin
    article.id = Uuid();
    let newArticles = [...oldArticles, article];
    this.setState({ articles: newArticles});
  }

  render(){
    return (
      <div>
        <h3>Ma liste d'articles</h3>
        <Formulaire formTitle="Ajouter un article" addArticle={this.addArticle} />
        <ItemList articles={this.state.articles} />
      </div>
    )
  }
}

export default App;