4
リレーコンテナのフラグメントを定義する際、条件付きでフィールドを含めるかスキップすることができます。 For exampleの場合、showComments
変数がtrue
の場合のみ、次のコードにはcomments
が含まれます。リレー:突然変異のファットクエリーにフィールドを条件付きで含める
Relay.createContainer(Story, {
initialVariables: {
numCommentsToShow: 10,
showComments: false,
},
fragments: {
story: (variables) => Relay.QL`
fragment on Story {
comments(first: $numCommentsToShow) @include(if: $showComments) {
edges {
node {
author { name },
id,
text,
},
},
},
}
`,
}
});
どのように我々は条件付きでmutation's fat query内のフィールドを含めることができますか?
使用用途:代わりに、タイプの各フィールドを更新するために、別々のmuttaionsを有するので、私たちは、任意のフィールドを更新し、応答にのみそのフィールドを取得するために同じ変異を再利用することができます。そうすることでペイロードを減らすことができます。
この質問は別の質問Reusing a Mutation in Relayによって動機付けられています。
興味深い!しかし、それは常に動作しないようです(ref:https://github.com/facebook/relay/issues/1046#issuecomment-241073226)。 –