在Apollo查询中使用useEffect钩子函数是一个常见的问题,可以通过以下方法解决:
import { useLazyQuery } from '@apollo/client';
const MyComponent = () => {
const [getData, { loading, data }] = useLazyQuery(MY_QUERY);
useEffect(() => {
getData();
}, []);
if (loading) {
return Loading...
;
}
if (data) {
return {data}
;
}
return null;
};
import { useQuery } from '@apollo/client';
const MyComponent = () => {
const { loading, data, fetchMore } = useQuery(MY_QUERY);
useEffect(() => {
// 检查是否已经加载过数据
if (data) {
// 执行额外的操作
}
}, [data]);
if (loading) {
return Loading...
;
}
if (data) {
return {data}
;
}
return null;
};
根据你的具体需求,选择适合你的方法来解决Apollo查询不触发useEffect的问题。