将数组中的位置分配为反应键?

Posted

技术标签:

【中文标题】将数组中的位置分配为反应键?【英文标题】:Assign position in array as react key? 【发布时间】:2017-10-03 08:02:20 【问题描述】:

我有一个由不同字符串组成的数组。我想通过它映射并在 React 中显示它。当两个字符串相同时,React 不喜欢它。

我的问题是:有没有办法让我通过数组进行映射并将数组中元素的位置 (0,1,2,3..) 分配为键?我不确定我将如何访问它?可以吗?

let renderthis = this.props.myreducer.somearray.map((element) =>
  <span key=what can I put here?>element </span>
);

顺便说一句,我试过了,但没有用:

let renderthis = this.props.myreducer.somearray.map((element, i) =>
  <span key=i>element </span>
);

警告:flattenChildren(...): 遇到两个相同的孩子 键,.1:$afaf。子键必须是唯一的;当两个孩子共用一个 键,只会使用第一个孩子。

【问题讨论】:

map 回调的第二个参数是一个索引。 谢谢。看看我的编辑,如果这是你的意思。我试过了,但我收到警告说元素有重复的键。但也许我在那里做错了? 然后是其他一些元素有重复的键。 我不这么认为。正是在我向该数组添加重复元素的那一刻,我得到了这个错误。 不确定您将.1:$afaf 带到了哪里。 i 是一个数字。 【参考方案1】:

Array.prototype.map 回调接受第二个参数作为项目索引。

这意味着,如果您只需要每个元素集合的唯一键,并且您没有任何其他自然唯一的值,您可以简单地这样做:

let renderthis = this.props.myreducer.somearray.map((element, i) =>
  <span key=i>element </span>
);

【讨论】:

以上是关于将数组中的位置分配为反应键?的主要内容,如果未能解决你的问题,请参考以下文章

为什么将值分配给数组中的特定位置,将同一值分配给同一数组中的其他随机位置?

将多个键分配给数组中的相同值

如何在本机反应中为数组的每个元素分配相同的值。如何在本机反应中制作密钥对数组

如何将命名键分配给数组? [复制]

如何将值分配给数组中的随机位置?

如何在反应中显示表格中的对象数组