Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 中继:获取递归数据返回null_Javascript_Recursion_Reactjs_Relayjs_Graphql - Fatal编程技术网

Javascript 中继:获取递归数据返回null

Javascript 中继:获取递归数据返回null,javascript,recursion,reactjs,relayjs,graphql,Javascript,Recursion,Reactjs,Relayjs,Graphql,我有一个要获取和显示的递归数据结构。我有一个图ql类型,如下所示: human { name, children: [human] } 现在,我希望以增量方式获取数据,并因此用于响应类HumanList和HumanItem,在这些类中,我仅在单击项时使用中继来获取子项。在我的实际代码中,中继在每次单击时,即在呈现第一组子对象时,都会给子对象一个空值。我在继电器操场上试过测试代码,发现了类似的问题。是指向gist的链接。playerdy.js包含代码部分,playerdy.gql.js包

我有一个要获取和显示的递归数据结构。我有一个图ql类型,如下所示:

human {
  name,
  children: [human]
}
现在,我希望以增量方式获取数据,并因此用于响应类HumanList和HumanItem,在这些类中,我仅在单击项时使用中继来获取子项。在我的实际代码中,中继在每次单击时,即在呈现第一组子对象时,都会给子对象一个空值。我在继电器操场上试过测试代码,发现了类似的问题。是指向gist的链接。playerdy.js包含代码部分,playerdy.gql.js包含模式部分。点击每个数字打开它下面的子项。在3级或4级之后,它开始将
找到的子项显示为null
。对我来说,它发生在
1.1.2.2
上。如果您没有遇到这种情况,那么尝试在模式代码中添加更多级别,错误就会出现

我已经检查了继电器问题,但没有一个起到作用


非常欢迎任何帮助。

这是一个错误。给定一个复数字段,当查询新数据时,我们将区分存储中的内容和应用程序想要的内容。错误在于,我们假设复数字段中的所有记录在存储中具有相同的形状,并且仅在要区分的任何复数字段中使用第一个存储记录。在您的情况下,这当然不是真的,复数字段中的一些记录可能会展开,而一些记录可能会折叠


这已作为Relay 0.9.1的一部分进行了修复,并将在Relay 0.9.1之后的版本中发布。

我根据要点制作了一个Relay游乐场-只需复制粘贴代码和架构文件-它的工作原理与预期完全相同,当单击父名称时,子项会展开。你能直接链接到一个破操场吗?这将有助于调试。@JoeSavona在中继操场中不断单击每个数字,直到你们的结果是向下的,你们会发现消息find children为null。事实上,这条信息就是错误所在。如果您检查graphql代码并检查层次结构,那么您会发现甚至在下面还有更多的子级。如果仍然无法跟踪错误,请尝试增加graphql代码中的子项,否则将失败。对我来说也是一样,起初我一直工作到2级,但后来又失败了。@JoeSavona我更新了要点和问题,以便更好地理解这个问题。