Was sind die gültigen Symbole für eine React Key-Stütze als solche?Was sind die gültigen Symbole für einen React 'Schlüssel'?
<div key="can i use spaces for example?"></div>
In meinem Fall möchte ich als Schlüssel
const links = [
{
label: 'foo label',
href: 'https://example.com',
},
{
label: 'bar label',
href: 'https://example.com',
}
]
links.map(
link => (<a key={link.href} href={link.href}>{link.label}</a>)
);
eine URL verwenden Ist diese gültig? Ich dachte, dass ich eine Hash-Funktion verwenden könnte, um den href zuerst durchzulassen, aber dies ist ein sinnloser Schritt, wenn ein Zeichen in einem Schlüsselwert garantiert gültig ist.
Der Grund, warum ich frage, ist, dass ich kein Beispiel in dem Dokument finden kann, das ein nicht-alphanumerisches Zeichen für den Schlüssel verwendet, und auch explizit sagt, dass, wenn Sie keine ID haben Verwenden Sie als Schlüssel für das Objekt, das Sie rendern können hash some part of it to make a key
. Obwohl dies daran liegen könnte, dass Sie keine sehr langen Schlüssel verwenden sollten und daher den Inhalt zuerst hasen sollten, um seine Größe zu reduzieren, scheint die gesamte Dokumentation implizit zu sagen, dass nur alphanumerische Zeichen als Schlüssel verwendet werden sollten.
Obwohl der von Ihnen gepostete Auszug nicht explizit etwas über ungültige Zeichenfolgen sagt, die in einem Schlüssel verwendet werden, heißt es, dass "Sie einen Teil des Inhalts zum Erzeugen eines Schlüssels hashen können". Obwohl dies nicht unbedingt bedeutet, dass einige Zeichen ungültig sind, scheint es, dass dies bedeuten könnte. Und obwohl die Reaktion für keine Zeichen abstürzt (URLs scheinen zum Beispiel zu funktionieren), bedeutet dies nicht notwendigerweise, dass sie "unterstützt" wird und in der Zukunft sein wird. – sigsve
Nicht sicher, ob das ursprüngliche Beispiel geändert wurde, aber der Schlüssel in diesem Fall ist * nicht * eine gute Passform, weil die URL nicht einzigartig unter seinen Geschwistern ist. Besser, das Etikett in diesem Fall zu verwenden. –