mirror of
https://github.com/ElemeFE/element.git
synced 2025-12-19 12:04:02 +08:00
* Tree: fix #15538 by adding more detect logic. * Tree: fix #15538 and add test case. * Tree: fix eslint error * Tree: remove arrayContains function
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
import objectAssign from 'element-ui/src/utils/merge';
|
||||
import { markNodeData, NODE_KEY } from './util';
|
||||
import { arrayFindIndex } from 'element-ui/src/utils/util';
|
||||
|
||||
export const getChildState = node => {
|
||||
let all = true;
|
||||
@@ -435,8 +436,10 @@ export default class Node {
|
||||
const newNodes = [];
|
||||
|
||||
newData.forEach((item, index) => {
|
||||
if (item[NODE_KEY]) {
|
||||
newDataMap[item[NODE_KEY]] = { index, data: item };
|
||||
const key = item[NODE_KEY];
|
||||
const isNodeExists = !!key && arrayFindIndex(oldData, data => data[NODE_KEY] === key) >= 0;
|
||||
if (isNodeExists) {
|
||||
newDataMap[key] = { index, data: item };
|
||||
} else {
|
||||
newNodes.push({ index, data: item });
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user