反应,中继和导航

时间:2016-11-23 21:15:16

标签: reactjs navigation react-native redux relay

我刚刚开始使用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一样存储)。

那么,采用这种等级制度的最佳方法是什么?

0 个答案:

没有答案