Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs React:我应该使用什么来代替“索引”中的数组索引;“关键”;道具_Reactjs - Fatal编程技术网

Reactjs React:我应该使用什么来代替“索引”中的数组索引;“关键”;道具

Reactjs React:我应该使用什么来代替“索引”中的数组索引;“关键”;道具,reactjs,Reactjs,我理解为什么不应该在键中使用数组索引。有很多现有的SO答案和博客文章解释了这是如何导致bug的 但是我找不到太多关于如何做的建议。标准建议只是“使用唯一标识项目的ID”-但如果没有这样的唯一ID,该怎么办 假设您承担了编写组件的任务,组件将被传递一个项目数组(没有任何可以用作唯一ID的内容),您需要映射该数组以呈现DOM节点列表。在这种情况下你应该怎么做 选项: 只需将数组索引用作键,并抑制你的linter的警告 根本不要设置键道具。(但是React会在运行时给你一个警告——除非有办法选择退出

我理解为什么不应该在
键中使用数组索引。有很多现有的SO答案和博客文章解释了这是如何导致bug的

但是我找不到太多关于如何做的建议。标准建议只是“使用唯一标识项目的ID”-但如果没有这样的唯一ID,该怎么办


假设您承担了编写组件的任务,组件将被传递一个项目数组(没有任何可以用作唯一ID的内容),您需要映射该数组以呈现DOM节点列表。在这种情况下你应该怎么做

选项:

  • 只需将数组索引用作
    ,并抑制你的linter的警告
  • 根本不要设置
    道具。(但是React会在运行时给你一个警告——除非有办法选择退出这个警告?)
  • 还有别的吗

“没有任何可以用作唯一ID的东西”这种情况非常罕见。通常,您确实有一些东西以某种方式标识列表中的项目。无论如何,您可以使用某种风格的
guid
为每个项分配一些合成id。任何JS迭代器都会为您提供项和索引,将该索引用作唯一键。这是非常明显和重要的simple@Amir-Mousavi不,您不应该在React中使用数组索引作为
,关于原因有很多讨论。你所提到的讨论是无效的,因为在中间出现的其他东西会破坏索引的顺序,显示出糟糕的体系结构:)不应该发生+ MeMuMeWeb不是一个好的编程源,如果你有嵌套的映射,对于第一个映射,你可以拥有嵌套代码“代码> {索引x1} <代码> >嵌套的代码>密钥= ${Index 1}-${index2}
等等