javascript - React 使用新项目更新列表但 ID 可能会重复

标签 javascript reactjs react-redux

我有一个有状态组件,它维护2 个不同类型的列表。例如,考虑汽车。每辆车都有一个品牌(假设它有唯一的makeId)和model(同样有一个唯一的modelId ).现在我的组件首先显示品牌列表,每个品牌都有一个 key 属性,其值为 makeId。现在单击 make,我的 stateful 组件会更新包含所有 models 的列表(每个模型都有 modelId 作为key 属性)。现在可能会发生某些 makemakeId 的数值与正在呈现的 modelId 的数值相同的情况。(因为 makes 和 models进入不同的关系表)。在这种情况下更新列表时 react 会遇到一些问题吗?

示例:

Below is the comparison of old and new list.

<ul>
  <li key=1> Some Make X</li>
  <li key=2> Some Make Y</li>
</ul>


<ul>
  <li key=34> Some Model X</li>
  <li key=2> Some Model Y</li>
</ul>

最佳答案

React 使用唯一的 key 属性来识别元素。在组件中,如果您认为元素列表会有重叠的 ID,您始终可以传递唯一的 key 属性。

如果您正在渲染的元素与 make 相关,则传入键作为

<div key={`make_${makeId}`} />

如果您正在渲染的元素与模型相关,则传入键作为

<div key={`model_${modelId}`} />

关于javascript - React 使用新项目更新列表但 ID 可能会重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53577956/

相关文章:

android - React-Native 升级到 0.60 后找不到符号

reactjs - 与简单地从商店配置中导出调度相比,useDispatch 有什么优势?

javascript - React-Reudx : Actions must be plain objects. 使用自定义中间件进行异步操作

javascript - React-Redux - 创建搜索过滤器

javascript - 逗号分隔表达式可以用作 JavaScript 中的 if 语句吗?

javascript - 如何播放/暂停 JavaScript onClick 事件?

javascript - Styled-components 获取 props 值到 javascript 变量

javascript - 从另一个组件 react 更新组件

javascript - 如何在node.js中比较特定场景的两天时间

javascript - 使用 Service Worker 离线处理文件上传