假设我有这部分代码:
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)
是否有可能做到这一点?原因是我的 props 是由 Redux store 注入的。某些查询需要对 var1 和 var2 进行组合更改,例如获取正确的数据。但是,有时某些操作只会更改 Redux 中的 var1,这会触发 graphql 查询并产生不正确的数据。对于这些情况,我想取消查询。
我知道这个问题可以通过设计来解决。这意味着我们可以在 Redux 中单独创建查询所需的一组变量,任何动作触及这个集合,都需要触及集合中的个体。
但是,这样做需要 Redux 了解特定的 graphql 查询,从而形成紧密耦合。