React' key'的有效符号是什么?

时间:2016-08-08 10:45:27

标签: reactjs

反应关键道具的有效符号是什么;

<div key="can i use spaces for example?"></div>

在我的情况下,我想使用URL作为键

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>)
);

这有效吗?我以为我可以使用一些哈希函数来首先传递href,但如果任何字符保证在键值中有效,这是一个毫无意义的步骤。

我问的原因是,我无法在文档中找到使用非字母数字字符作为密钥的任何示例,并明确说明,如果您不这样做,有一个ID可用作您可以hash some part of it to make a key呈现的对象的关键字。虽然这可能是因为你不应该使用非常长的密钥,并且应该首先散列内容以截断它的大小,但似乎整个文档隐含地说只应使用字母数字字符作为一把钥匙。

1 个答案:

答案 0 :(得分:2)

reconciliation

的文档中最好地描述了React密钥的要求
  

在实践中,找到钥匙并不是很难。大多数时候,   您要显示的元素已经具有唯一ID。那是什么时候   不是这样,您可以为模型添加新的ID属性或散列一些   部分内容生成密钥。请记住,钥匙只有   在兄弟姐妹中独树一帜,而不是全球独一无二。

因此,关键应该是独特的(在其兄弟姐妹中)并且稳定。

因此,你的榜样非常合适。空间也应该没问题。