Reactjs 反应';独特的钥匙道具

Reactjs 反应';独特的钥匙道具,reactjs,jsx,Reactjs,Jsx,我在React文档中读到,键不是全局唯一的,每个兄弟键都应该是唯一的,但为什么这段代码可以工作呢 import React from 'react' import ReactDOM from 'react-dom' const people = [ {name: 'John', age: 20}, {name: 'Danny', age: 35}, {name: 'Rebecca', age: 18}, ] const element = ( <ul>

我在React文档中读到,键不是全局唯一的,每个兄弟键都应该是唯一的,但为什么这段代码可以工作呢

import React from 'react'
import ReactDOM from 'react-dom'

const people = [
   {name: 'John', age: 20},
   {name: 'Danny', age: 35}, 
   {name: 'Rebecca', age: 18}, 
]
const element = (
  <ul>
    {people.map((person, index) => (
      <li key={index}>{person.name}</li>
    ))}

    {people.map((person, index) => (
      <li key={index}>{person.name}</li>
    ))}
  </ul>
)

ReactDOM.render(
element,
document.getElementById("root")
)
从“React”导入React
从“react dom”导入react dom
康斯特人=[
{姓名:约翰,年龄:20},
{姓名:'Danny',年龄:35},
{姓名:'Rebecca',年龄:18},
]
常量元素=(
    {people.map((person,index)=>(
  • {person.name}
  • ))} {people.map((person,index)=>(
  • {person.name}
  • ))}
) ReactDOM.render( 元素, document.getElementById(“根”) )
不是所有的结果
  • 元素都被视为同级元素,所以为什么我没有得到任何警告,有两个元素具有相同的键?

    我认为文档中使用“同级”一词的方式指的是javascript数组中的同级元素,它可能与呈现的DOM树中的同级元素不对应。因此,将
  • 节点呈现到相同的
    父节点并不重要,React将它们视为两个不同的组件数组

    密钥只能在同级之间唯一 数组中使用的键应 在他们的兄弟姐妹中是独一无二的。然而,它们不需要全球化 独一无二。当我们生成两个不同的数组时,可以使用相同的键


    这些类型的键对于保持模型(即数组)与生成的元素对齐非常有用。当数组的某个单元格发生更改时,这些键有助于识别该单元格生成的元素。