Búsqueda de sitios web

javascript - Cómo crear claves únicas para componentes de React


Entonces, tengo este componente aquí, que si no le doy claves únicas, React lo renderiza incorrectamente. No puedo dar esto: key={$ {name}$ {index}} como clave porque el nombre de cada elemento puede ser editado, así que esto causará un re-montaje... Entonces, ¿cómo hago estas claves únicas? solo dar el índice no funciona...

{stringArray.map((name, index) => (
        <Component
          key={`${index}_${name}}`}
          name={name}
          index={index}
          onChange={onNameChange}
          onDelete={onNameDelete}
        />
      ))}

Respuesta #1

Una cosa que te recomendaría hacer sería instalar el paquete npm uuid aquí

No estoy seguro si estás usando commonjs o módulos, así que prueba con ambos al comienzo de tu archivo después de instalar el paquete npm uuid

// modules
import { v4 as uuidv4 } from 'uuid';
// commonjs
const { v4: uuidv4 } = require('uuid');

Entonces deberías poder hacer esto en su lugar

// Notice key is now the value of uuidv4()
{stringArray.map((name, index) => (
        <Component
          key={uuidv4()}
          name={name}
          index={index}
          onChange={onNameChange}
          onDelete={onNameDelete}
        />
      ))}

UUID es un identificador único universal. Más información