Reactjs 单击时GraphQL useLazyQuery无法正常工作

Reactjs 单击时GraphQL useLazyQuery无法正常工作,reactjs,graphql,onclick,Reactjs,Graphql,Onclick,我对GraphQL很陌生。我正在尝试将useLazyQuery钩子用于onBtnClick函数。该按钮应该在每次单击时查询并执行某些操作 我第一次单击按钮时,数据返回未定义,只有第二次尝试后,它才能工作。下面是一些示例代码: const [getItemList, { loading, data}] = useLazyQuery(ItemList, { fetchPolicy: 'network-only' }); const onBtnClick = () => { getI

我对GraphQL很陌生。我正在尝试将useLazyQuery钩子用于onBtnClick函数。该按钮应该在每次单击时查询并执行某些操作

我第一次单击按钮时,数据返回未定义,只有第二次尝试后,它才能工作。下面是一些示例代码:

const [getItemList, { loading, data}] = useLazyQuery(ItemList, { fetchPolicy: 'network-only' });

const onBtnClick = () => {

    getItemList();

    if (loading) {
        //do something
    });
    if (data) {
        //do another thing
    }
}

return (
    <div>
        <button onClick={onBtnClick}>Something</button>
    </div>
)
有人能给我一些指导或解释吗?

因为onBtnClick函数中的数据不是最新的数据。您需要一个useEffect来监听数据并加载更改

useEffect(() => {
  console.log(data, loading)
}, [data, loading])