我创建了一个自定义反应挂钩来使用 useQuery 获取数据。当用户滚动表格时,将加载下一组数据。当使用下一组道具调用自定义反应钩子时,它将返回先前计算的调用结果。
function useCustomHook(props) {
const [data, setData] = useState([]);
const {data, loading, error, refetch} = useQuery(query, variables: {props});
useEffect(() => {
setData(data);
}, [loading, error, data, refetch]);
return {data, setData};
}
我期待它返回新拨打电话的数据。
我知道这不是你所要求的,但这永远不会奏效。
data
两次,因此此代码将无法运行。useState
和 useEffect
,这样你的代码就可以在没有 const [data, setData] = useState([]);
// and
useEffect(() => {
setData(data);
}, [loading, error, data, refetch]);
无论哪种方式,为了回答你的问题,如果你像我们过去那样使用
useEffect
和 useState
,则 return 语句总是首先以空值解析,并且当你在 useEffect
中拥有的任何承诺是已解决,更新值。
我希望这有帮助