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

Reactjs 在React中使用列表和键时,键是否可以包含空格/空格?,reactjs,Reactjs,我只是看不到报告中明确提到这一点 我的直觉是将它们视为HTML ID属性安全,该属性表示: 该值不能包含任何空格字符 。。。还有 我担心最坏的情况可能是像冰盒、冰激凌和冰凉这样的钥匙可能会意外地变成冰的三把钥匙,这显然不是我们想要的 然而,我意识到这不是HTML。最具体的提及是在列表和关键点文档页面上 选择键的最佳方法是使用一个字符串,该字符串在其同级中唯一标识列表项 那么,使用任何“唯一字符串”(包括空格)安全吗? 我知道唯一的条目ID是最好的,但在我的特定用例中,我没有这样的东西,也没有sl

我只是看不到报告中明确提到这一点

我的直觉是将它们视为HTML ID属性安全,该属性表示:

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

。。。还有

我担心最坏的情况可能是像
冰盒
冰激凌
冰凉
这样的钥匙可能会意外地变成
的三把钥匙,这显然不是我们想要的

然而,我意识到这不是HTML。最具体的提及是在列表和关键点文档页面上

选择键的最佳方法是使用一个字符串,该字符串在其同级中唯一标识列表项

那么,使用任何“唯一字符串”(包括空格)安全吗?


我知道唯一的条目ID是最好的,但在我的特定用例中,我没有这样的东西,也没有slug/safe字符串。这源于对当真实ID不可用时应该在多大程度上进行讨论

一般来说,React不关心字符串中的字符,它不需要检查。React在检查虚拟DOM中的唯一性时使用这些键,并且这些键不会出现在生成的HTML中(不再出现)。因此,这里没有HTML规则,特别是为
id
定义的规则


为什么
HTML
中的标识符不允许空格?原因可能是因为它们在CSS中被用作
#myIdentifier
,其中的空格会使含义变得模棱两可。

但在许多情况下使用索引作为键是安全的。据我所知,键可以包含任何字符。React足够聪明,可以处理空格或任何特殊字符。因为它只使用关键点来识别对象,所以应该将它们视为一个黑匣子。只有坏代码不能处理空格。通常,该键在生成的HTML中甚至不可见,因此HTML规则肯定不适用。@Sulthan您没有将响应作为答案发布是有原因的吗?基于最初发布后的其他反馈和观察,我很乐意将其标记为已接受。在用空格标记的语言中,在标识符中允许空格将在解析过程中引入相当多的歧义。这也是为什么标识符通常不允许有其他神奇的分隔符(即=)