だが、私はこのコードの部分を持っているとしましょう:config.options内のgraphqlクエリをキャンセルすることはできますか?
export default graphql(MyQuery, {
options: (props) => ({
variables: {
var1: props.var1,
var2: props.var2,
var3: props.var3
/* I want to do this:
if (props.var4 == "Donot query") /* Cancel this query; */
*/
}
})
})(DumbComponent)
はこれを行うことが可能ですか? 理由は私の小道具はReduxストアによって注入されます。一部のクエリでは、正しいデータを取得するために、var1 & var2への変更の組み合わせが必要です。ただし、時には、Reduxのvar1のみが変更され、graphqlクエリがトリガされ、不正なデータが生成されることがあります。そのような場合は、クエリをキャンセルしたいと思います。
私はこの問題が設計によって解決できることを知っています。つまり、クエリに必要な一連の変数をReduxで個別に作成することができ、アクションがこのセットに触れると、セット内の個体に触れる必要があります。
ただし、これを行うには、特定のgraphqlクエリをReduxに認識させる必要があります。あなたは「クエリをキャンセル」によって何を意味するかに応じて、あなたがskip
オプションを使用することができるかもしれません
私はスキップしようとしなかった、それこの目的のために設計されていません。それはクエリ全体をスキップし、私の注射データを '小道具から取り除く'でしょう。古い注入データを小道具に残したいと思っています。さもなければ、コンポーネントはレンダリングされません。 –
あなたができることの1つは、データを状態にコピーするか、変数が準備ができるまで変数を設定しないことです – stubailo