如何从本地图获取数据?

How to get data from the local graph?

我有显示分层数据的组件。它是一个递归数据结构——一个层次分类器。分类器中的每个类别由子类别等组成。

这是它的游乐场:

Relay playground

我有一个组件以第三方 html 形式显示此分类器。用于选择类别。

在某个时间点,用户将从这个递归分类器中选择一个类别,我将必须获得导致当前级别的数据的完整路径。我的意思是,如果用户选择层次结构级别 3 的类别,我必须返回这些数据:

[root cat id, root cat name],
[level 1 cat id, level 1 cat name],
[level 2 cat id, level 2 cat name]

因此,当我在第 2 级捕捉到组件内部的拾取事件时,如何才能从 Relay 存储(来自本地图表)的根类别中获取完整路径?

这有一个 React 解决方案而不是 Relay 解决方案:如何访问树中给定节点的路径?我会合成一条路径,并将其传递到您的组件中。

const path = [
  // The elements of the passed-in path.
  ...this.props.path,
  // A new path element using the details from this level.
  [this.props.catId, this.props.catName],
];
<MyNode path={path} onClick={() => alert(path)} />

单击此处获取 working example