在React中使用列表和键时,键是否包含空格/空格?

ano*_*ard 12 reactjs

我只是没有在React docs for Lists and Keys中明确提到它.

我的直觉是将它们视为HTML ID-attribute-safe,HTML5规范说:

该值不得包含任何空格字符

......也是MDN文档.

我担心最糟糕的情况可能是Key喜欢ice box,ice cream并且ice cold可能会意外地变成三个键ice,这显然不是我们想要的.

但是,我意识到这不是HTML.最具体的提及是在Lists And Keys文档页面中说的

选择密钥的最佳方法是使用在其兄弟姐妹中唯一标识列表项的字符串.

那么,使用任何"唯一字符串"(包括空格)是否安全?

我知道唯一的项目ID是最好的,但在我的具体用例中我没有这样的东西,也没有slug/safe字符串.这源于对实际ID不可用时应避免使用索引作为键的程度的讨论.

Sul*_*han 11

一般来说,React不关心字符串中的字符是什么,也不需要检查.React在检查虚拟DOM中的唯一性时使用密钥,并且密钥不会出现在生成的HTML中(更多).因此,没有HTML规则,特别是id那里定义的规则不适用于此处.

为什么标识符HTML不允许空格?原因可能是因为它们被用在CSS中,#myIdentifier并且空间会使含义变得模糊.