In React, quando si esegue il rendering di un mapping da elementi di un elenco / array / iterabile a elementi React, è necessario allegare una chiave univoca localmente a ciascun elemento. Generalmente questo è così che se un elemento cambia o viene rimosso, React deve solo rieseguire il recupero di quell'elemento specifico piuttosto che dell'intera lista. Questa chiave deve essere una stringa e, se una chiave specifica dell'elemento non è disponibile, è disponibile un pacchetto npm * ( shortid ) per generarli.
Perché i progettisti di React hanno impostato questo requisito piuttosto che consentire qualsiasi valore immutabile? In particolare, per me è logico poter usare un Symbol
, che non può essere convertito in una stringa univoca. (Dopo aver riesaminato il mio caso specifico in cui volevo usare un Symbol
, mi sono reso conto che non era necessario, ma la domanda è ancora valida in generale.)
* C'era anche un pacchetto appositamente progettato per questo chiamato react-key-index
ma sembra essere scomparso da github.