相关疑难解决方法(0)

给组件提供唯一键时,可以使用Math.random()生成这些键吗?

问题如下:

我有几千个元素列表的数据.其中一些是重复的,然后可能有重复键的机会.因为我没有真正的"ID"或任何能让我有机会将所有元素作为唯一键的ID,所以可以使用Math.random()吗?

据我所知,密钥主要用于区分组件.我认为,就我的代码中的密钥没有任何关系,这应该没问题?为了确保没有重复的数字,我可以将两个数学格式相互分开以获得几乎肯定唯一的密钥.

这是一个好习惯吗?我可以使用它而不必担心任何事情吗?

reactjs

36
推荐指数
5
解决办法
3万
查看次数

使用 UUID 作为列表键会导致 React 中不必要的重新渲染吗?

我有一个项目列表,其中包含的数据不足以生成唯一键。如果我使用 uuid 库生成 ID,单个项目的更改是否也会导致其他项目重新呈现,因为它们的密钥每次都会更改?

const people = [
  {
    gender: 'male',
    firstName: 'david',
  },
  {
    gender: 'male',
    firstName: 'david',
  },
  {
    gender: 'male',
    firstName: 'joe',
  },
]

const renderPeople = () => {
  return people.map(person => {
    return (
      <div key={uuid.v4() /* a new value each time? */ }>
        <p>{person.gender}</p>
        <p>{person.firstName}</p>
      </div>
    )
  })
}
Run Code Online (Sandbox Code Playgroud)

一段时间后......其中一个大卫改变了

const people = [
  {
    gender: 'male',
    firstName: 'david',
  },
  {
    gender: 'male',
    firstName: 'davidzz',
  },
  {
    gender: 'male',
    firstName: 'joe',
  },
]
Run Code Online (Sandbox Code Playgroud)

rendering reactjs

8
推荐指数
2
解决办法
6621
查看次数

标签 统计

reactjs ×2

rendering ×1