如何使用react-apollo-hooks链接useQuery挂钩

Max*_*nck 3 reactjs graphql react-apollo react-hooks

我想用钩子执行2个查询,其中第二个查询使用第一个查询中检索到的信息。例如:

const { data, error, loading } = useQuery(GET_DOGS);
const result2 = useQuery(GET_BREEDS, { variables: { dogId: data[0].id } });
Run Code Online (Sandbox Code Playgroud)

现在,我使用某种状态并skip在第二个挂钩上设置了参数,但是我认为必须有一些更容易忽略的解决方案?

Dan*_*den 6

挂钩不能是有条件的,因此您不能if像使用Query组件那样使用语句或提前返回。不管好坏,使用skip参数最简单的解决方案:

const { data, error, loading } = useQuery(GET_DOGS);
const result2 = useQuery(GET_BREEDS, {
  skip: !data,
  variables: { dogId: data && data.dogs[0].id },
});
Run Code Online (Sandbox Code Playgroud)

顺便说一句,这与您在2017年处理它的方式并没有什么不同,我们仍在使用HOC并进行重组