阿波罗客户端重新获取查询时不传递带有react-hooks的变量

时间:2020-07-07 18:01:40

标签: react-apollo apollo-client

我正在使用一个名为PLANTS_QUERY的查询 我正在使用反应挂钩。并使用像这样的使用查询钩子

 const { loading, error, data, refetch } = useQuery(PLANTS_QUERY);

我用这样的变量调用refetch函数

refetch(
  { where: { name_contains: value }}
);

它会重新提取,但不会将变量传递给查询,

我控制台记录了结果。在操场上奔跑时会传递变量。但是钩子提供的此功能不会传递变量

这是我的查询

const PLANTS_QUERY = gql`
  query {
    plants{
      plant_name
      is_active
    }
  }
`;

2 个答案:

答案 0 :(得分:1)

据我所知,如果您正在使用useQuery,则需要将要查询的变量作为参数传递给useQuery钩子并重新执行,如果要在执行以下操作时更改变量,则只需执行原始查询再次调用相同的查询尝试useLazyQuery,它将提供可用于触发带有新变量的查询的功能。

答案 1 :(得分:0)

尽管仅支持后端接受变量是不够的。将我的gql包装查询更改为接受变量可以解决我的问题。

const PLANTS_QUERY = gql`
  query PlantQuery($where:PlantWhereUniqueInput){
    plants(where:$where){
      plant_name
      is_active
    }
  }
`;

现在后端正在接收我要传递的变量