findPathToSelected method

List<T>? findPathToSelected(
  1. List<T> nodes,
  2. V? targetValue
)

递归查找当前节点路径

Implementation

List<T>? findPathToSelected(List<T> nodes, V? targetValue) {
  for (var node in nodes) {
    if (widget.valueMapper(node) == targetValue) {
      return [];
    }

    final children = getChildren(node) ?? [];
    final path = findPathToSelected(children, targetValue);
    if (path != null) {
      return [node, ...path];
    }
  }
  return null;
}