我们说我有这部分代码:
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中单独创建查询所需的一组变量,并且任何动作都会触及此集合,需要触摸集合中的个体。
但是,这样做需要Redux知道特定的graphql查询,从而产生紧密耦合。
答案 0 :(得分:0)
根据“取消查询”的含义,您可以使用skip
选项:
export default graphql(MyQuery, {
skip: (props) => !! props.var4,
options: (props) => ({
variables: {
var1: props.var1,
var2: props.var2,
var3: props.var3
}
})
})(DumbComponent)
请参阅此处的文档:http://dev.apollodata.com/react/api-graphql.html#graphql-config-skip
答案 1 :(得分:0)