效果描述:每次添加+按钮可以新添加一行新列,点击后面的×可以删除该行.
问题描述:每次从数组中删除该行的时候,都默认是从最后一个开始删.
附上代码:
原因分析:react的diff算法需要给节点添加key值才会分别认识不同的节点,所以给节点添加key值.
结果:添加Key值仍然无效.
效果描述:每次添加+按钮可以新添加一行新列,点击后面的×可以删除该行.
问题描述:每次从数组中删除该行的时候,都默认是从最后一个开始删.
附上代码:
原因分析:react的diff算法需要给节点添加key值才会分别认识不同的节点,所以给节点添加key值.
结果:添加Key值仍然无效.
data
里面的每个 item
加一个 id
属性,每次点击 +
按钮新添加一行时,将该行对应的 item
的 id
设置为 Date.now()
;<div key={String(index*44)}>
改为 <div key={item.id}>
;<InputNumber key={String(index*34)}>
改为 <InputNumber>
(不要key
)。13 回答12.7k 阅读
7 回答1.8k 阅读
5 回答1.3k 阅读
3 回答1k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
5 回答2.2k 阅读
index是不行的吧,因为 在diff 之前 当前的key 已经刷新了吧
可以看看我的博客
利用 WeakMap 对 Vue 新建数组中的对象赋予:key