react给节点添加key值不生效

效果描述:每次添加+按钮可以新添加一行新列,点击后面的×可以删除该行.

clipboard.png
问题描述:每次从数组中删除该行的时候,都默认是从最后一个开始删.

附上代码:
clipboard.png

原因分析:react的diff算法需要给节点添加key值才会分别认识不同的节点,所以给节点添加key值.
结果:添加Key值仍然无效.

阅读 4.5k
3 个回答

在添加时,给新加的对象上生成一个惟一的key,不要使用index.

{key: Date.now()}
  1. data 里面的每个 item 加一个 id 属性,每次点击 + 按钮新添加一行时,将该行对应的 itemid 设置为 Date.now();
  2. <div key={String(index*44)}> 改为 <div key={item.id}>;
  3. <InputNumber key={String(index*34)}> 改为 <InputNumber>(不要key)。
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题