我在页面加载时正在加载数据,而且当单击按钮时,我需要加载新项目。因此,第一次加载时我使用过useQuery,当用户单击按钮时,我使用过useLazyQuery来加载具有特定参数的新数据。
const { loading, error, data, networkStatus, refetch } = useQuery(
GET_NEWS,
{
variables: {
input: {
query: state.Query, // default news
},
},
}
);
const [
getNews,
{ loading: newsLoading, error: newsError, data: newsData },
] = useLazyQuery(GET_NEWS);
const onButtonClick = async (searchParam) => {
await getNews({
variables: {
input: {
query: searchParam,
},
},
});
}
那么有没有一种更好的方法可以使用相同的查询而不使用useQuery呢? 还是我应该使用useLazyQuery并在useEffect挂钩上调用第一个查询,例如componentDidMount方式?
类似的东西
useEffect(() => {
const data = async () => {
await getNews({
variables: {
input: {
query: state.Query,
},
},
});
}
}, [])
感谢您的帮助,这是更好的方法。还是有其他方法可以实现这一目标。