Reactjs 合并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

我在加载页面时正在加载数据,而且当单击按钮时,我需要加载新项目。因此,我第一次使用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钩子上的第一个查询,比如ComponentDidMountWay

像这样的

useEffect(() => {
     const data = async () => {
       await getNews({
        variables: {
         input: {
          query: state.Query,
        },
      },
    });
  }
 }, [])
感谢任何帮助,这是更好的方式。或者有没有其他方法来实现这一点。

lazy+效果(无需等待,只需获取带有变量的新闻),点击时也一样