如何保护useQuery中的首次通话

问题描述 投票:0回答:1
const [lastViewId, setLastViewId] = useState<string>("");

const { data, loading, error } = useQuery(
  GET_USER, 
  variables: { id: user_id }
);

const lastViewData = useQuery(
  GET_LAST_VIEW_DATA, 
  variables: { id: lastViewId }
);

useEffect(() => {
  if (loading || !data) return;

  if (data && data.user && data.user.lastViewId) {
    setLastViewId(data.user.lastViewId)
  }
}, [loading]);

如您所见,在设置GET_LAST_VIEW_DATA之前,没有lastViewId的情况下调用lastViewId

但是我想在设置lastViewId之后调用GET_LAST_VIEW_DATA

如何保护第一个电话?

ruby-on-rails reactjs graphql
1个回答
0
投票

useLazyQuery是解决此问题的最佳方法。

© www.soinside.com 2019 - 2024. All rights reserved.