Reactjs 合并useQuery和useLazyQuery,而不是将它们作为两个编写
我在加载页面时正在加载数据,而且当单击按钮时,我需要加载新项目。因此,我第一次使用useQuery加载,当用户单击按钮时,我使用useLazyQuery加载带有特定参数的新数据Reactjs 合并useQuery和useLazyQuery,而不是将它们作为两个编写,reactjs,graphql,Reactjs,Graphql,我在加载页面时正在加载数据,而且当单击按钮时,我需要加载新项目。因此,我第一次使用useQuery加载,当用户单击按钮时,我使用useLazyQuery加载带有特定参数的新数据 const { loading, error, data, networkStatus, refetch } = useQuery( GET_NEWS, { variables: { input: { query: state.Query, // defau
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钩子上的第一个查询,比如ComponentDidMountWay
像这样的
useEffect(() => {
const data = async () => {
await getNews({
variables: {
input: {
query: state.Query,
},
},
});
}
}, [])
感谢任何帮助,这是更好的方式。或者有没有其他方法来实现这一点。lazy+效果(无需等待,只需获取带有变量的新闻),点击时也一样