在我的 React 应用程序中,我使用数据库 ID 作为键来呈现从服务器返回的一组项目。
items.map(item => <Item key={item.id}/>)
这工作正常,但现在我想做乐观更新,所以我在将新项目提交到服务器之前将它们插入到数组中,然后在post操作完成时添加数据库 id。现在我的数组简要地包含了由于缺少键而导致错误的没有 id 的项目。
该怎么办?我知道使用索引作为键被认为是一种反模式(https://www.menubar.io/react-keys-index/),所以这是不可能的。我也不想为这些项目生成新的唯一 ID,因为一旦将它们保存到数据库中,它们都会有两个唯一 ID。我考虑对未保存的对象使用随机键,但这似乎是一个不稳定的解决方案。
这种情况是否有最佳实践解决方案?我不可能是第一个遇到这个问题的人。