我想用钩子执行2个查询,其中第二个查询使用在第一个查询中检索的信息。例如:
const { data, error, loading } = useQuery(GET_DOGS);
const result2 = useQuery(GET_BREEDS, { variables: { dogId: data[0].id } });
现在我使用一些状态并在第二个钩子上设置skip
参数,但是我认为必须有一些我可能会忽略的更简单的解决方案?
钩子不能是有条件的,所以你不能像使用if
组件那样使用Query
语句或早期返回。无论好坏,使用skip
参数是最简单的解决方案:
const { data, error, loading } = useQuery(GET_DOGS);
const result2 = useQuery(GET_BREEDS, {
skip: !data.dogs,
variables: { dogId: data.dogs[0].id },
});
顺便说一下,如果它是2017年我们仍然使用HOCs and recompose,它与你可能处理它的方式并不完全不同。