出现如标题所述bug,有两个原因
- Table组件设置的rowKey不唯一
- render函数执行时,虚拟dom的渲染机制
第一个原因,是因为rowKey设置的是每一列数据的id,而后台返回的数据有重复的,导致rowKey不唯一了
第二个原因,是因为render函数执行时,新旧两个虚拟dom树会进行对比,两棵dom树进行节点替换的依据就是key值,如果key值相同,说明是同一个元素,那么新的元素就会替换掉旧的元素。
所以,因为第一个原因导致key出现了重复,那么react虚拟dom去渲染的时候,替换掉其中一条数据之后,会以为其余重复的数据也替换掉了,从而导致,table表单切换页面的时候,出现额外展示上一页重复数据的情况