2017-11-30 10 views
0

可能ですか? FragmentContainerをQueryRendererの外部に使用できますか? 達成したいこと: 私はRefetchContainerSectionListを持っています。各セクション内の各アイテムはFragmentContainerです。セクションからアイテムを選択すると、これらのアイテムのFlatListを表示する新しいスクリーンを開きたいとします。項目選択のSectionListから渡したデータはFragmentContainerのリストです。したがって、データを見ることができないため、フラグメントを使用する必要があります。 FlatListの中のフラグメントだけを使用すると、RelayFragmentContainerから不足している環境が発生します。 FlatListの親としてQueryRendererを追加しました。同じ単一のセクションをもう一度要求します。しかし、これは余分にQueryRendererリクエストを行います。前の画面からのデータを表示したい。 少なくともFragmentContainerのこのリストをcacheConfigとして渡してfetchQueryメソッドから返しますが、jsonは応答jsonと異なり、生データではなく、すでに__fragmentsであるため、Relayは解析できません。リレー近代FragmentContainer外部QueryRenderer

答えて

1

この質問では、コンポーネントとフラグメントの外観を確認するのがよいでしょう。つまり、@maskディレクティブを使用して調査することができます。

私はリレーのドキュメントから例を取り、それをここに含めました:

module.exports = createFragmentContainer(
    ({ user }) => ..., 
    graphql` 
    fragment Component_user on User { 
     internUser { 
     manager { 
      ...Component_internUser @relay(mask: false) 
     } 
     .... on Employee { 
      admins { 
      ...Component_internUser @relay(mask: false) 
      } 
      reports { 
      ...Component_internUser @relay(mask: false) 
      } 
     } 
     } 
    } 

    fragment Component_internUser on InternUser { 
     id 
     name 
    } 
    `, 
); 

フラグメントから含ま@maskデータがフラグメントをホストしているコンポーネントで利用できるようになります使用します。これに関するリレードキュメントはここにあります:https://facebook.github.io/relay/docs/relay-directives.html#relay-mask-boolean

+0

ありがとうございます!これは私が探していたものの100%ではありませんが、私がここで達成しようとしている以上の目的を果たしています!どうもありがとうございます! – parohy

関連する問題