QueryRenderer完成查询后如何更新Flux(创建操作)?

时间:2018-07-21 14:41:19

标签: reactjs graphql relay

想知道如何在我的用例中集成Relay Modern&Flux。为了清楚起见,我在这里给出一个简化的案例。

在组件树的最底部,我有一个FragmentContainer,用于查询列表。

fragment foo_list {
    nodes {
        ... on Foo { ... }
    }
}

然后我有一个QueryRenderer,基本上可以渲染上面的FragmentContainer。根查询看起来像这样。

query {
    viewer { actor {
         ...foo_list
    }}
} 

UI以空状态开始。查询完成后,我想呈现Foo的列表以及第一个Foo实例的详细信息。稍后,用户应该能够单击并选择其他Foo实例。呈现Foo的列表很简单,可以在FragmentContainer中完成。

关于显示Foo的详细信息,很明显,我们需要像currentFoo这样的客户端状态。我想在...... p时使用Flux操作更新currentFoo

1)根查询完成,然后我们可以选择返回的第一个Foo,或者

2)用户选择一个Foo

我不确定如何在Relay Modern中执行(1)。在Relay Classic中,我们可以使用onReadyState,它似乎不再可用。

问:您能否仅将currentFoo存储在该州?

是的,但是我现在的代码结构似乎不适用于此解决方案。

假设Foo列表由FooListContainer(一个FragmentContrainer)呈现,然后Foo实例由FooContainer呈现。层次结构类似于:FooListContainer> FooContainer

由于GraphQL / Relay的工作方式,FooListContainer将只能访问对Foo实例的引用。如果要存储currentFoo,则需要访问实际的Foo实例,而不需要引用。有什么方法可以取消引用的引用,或者我在这里缺少什么?

0 个答案:

没有答案