我刚刚开始使用React-Native和Relay。到目前为止,一切都运行良好,但我找到一个很好的方法来处理导航和中继的组合。
我使用NavigationExperimental和Redux来存储导航的当前状态,没有问题。在组件层次结构中嵌套中继片段也没问题。但我不太了解的是如何处理场景,即“其他场景的孩子”。比方说,例如,我有一个用户数据库,可以是彼此的朋友。导航器可以显示的场景将是家庭和朋友档案。
对此的GraphQL查询类似于
query {
user {
id,
name,
[...],
friends {
edges {
node {
id,
name,
[...]
}
}
}
}
}
并且有两个组件,Home和ProfileModal,每个组件都与一个场景相关联,在导航器推送操作期间,Redux会存储要显示的具体用户的ID。
Home组件在用户上显示片段,在朋友上显示ProfileModal。但是,由于ProfileModal实际上并不是Home组件的子组件,而是一个独立的场景,我不想在home组件中调用ProfileModals片段(此外,这可能会导致获取大量不必要的数据)。 / p>
最重要的是,为了让Relay接受还有一个Redux存储,Redux容器需要在Relay容器中,所以我无法将要显示的朋友(由Redux存储)传递给Relay。
我希望,我已经能够描述这种情况了。基本上它是关于组件实际上是其他组件的子组件,但在DOM中却不是这样。
与层次结构相关的另一件事,我认为,Redux是存储场景之间共享的任何临时数据的最佳方式(在最简单的示例中发生,例如创建一个新组并在其中添加朋友)第二个模态),所以我不想完全摆脱Redux(或者像根组件中的Redux一样存储)。
那么,采用这种等级制度的最佳方法是什么?