首页 > 解决方案 > onClick 时 GraphQL useLazyQuery 无法正常工作

问题描述

我对 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>
)

有人可以指导我或解释一下吗?

标签: reactjsgraphqlonclick

解决方案


因为onBtnClick 函数中的数据不是最新数据。你需要useEffect倾听dataloading改变。

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

推荐阅读