0

I want to find the top-level parent (on the tree) of the current node.

I have the following code:

expandParents(node: any) {
    const parent = node.data.x.parent;

    if (!!parent && this.getLevel(parent) > 0) {
      this.expandParents(parent);
    } else if (!!parent && this.getLevel(parent) === 0) {
      console.log('1. ', parent);
      return parent;
    }
  }

  getTopLevelParent(node: T) {
    const topLevelParent = this.expandParents(node);

    console.log('2. ', topLevelParent);
    return topLevelParent;
  }

Below, is what console.log prints:

1.  DynamicFlatNode {data: {…}}
2.  undefined

Why console.log('2. ', topLevelParent); always returns undefined?

1 Answers1

0

Maybe, somewhere you're getting undefined data so can you please try using below code

expandParents(node: any) {
  const parent = node.data && node.data.x && node.data.x.parent ? node.data.x.parent : node;

  if (!!parent && this.getLevel(parent) > 0) {
    this.expandParents(parent);
  } else if (!!parent && this.getLevel(parent) === 0) {
    console.log('1. ', parent);
    return parent;
  }
}

getTopLevelParent(node: T) {
  if (node) {
    const topLevelParent = this.expandParents(node);

    console.log('2. ', topLevelParent);
    return topLevelParent;
  }
}
Aman Gojariya
  • 1,289
  • 1
  • 9
  • 21