ApollouseLazyQuery“onCompleted”回调函数被触发两次
创始人
2024-09-09 13:30:22
0

这个问题的原因是使用了Apollo useLazyQuery hook进行查询时,组件可能会因为某种原因多次重新渲染。每次渲染时,onCompleted回调都会被触发一次。为了避免出现这种情况,我们可以使用useRef hook来跟踪每次组件渲染后的onCompleted回调函数,只有在回调函数改变时才重新执行它。

示例代码:

import React, { useEffect, useRef } from 'react';
import { useLazyQuery } from '@apollo/react-hooks';
import { QUERY } from './queries';

const MyComponent = () => {
  const [executeQuery, { data }] = useLazyQuery(QUERY);
  const onCompletedRef = useRef();
  
  // Store the onCompleted callback in a ref
  useEffect(() => {
    onCompletedRef.current = () => {
      // Perform actions after query completes
    };
  }, []);
  
  // Call the stored onCompleted callback
  useEffect(() => {
    if (data && onCompletedRef.current) {
      onCompletedRef.current();
    }
  }, [data]);

  return (
    
{data &&
{data}
}
); }; export default MyComponent;

相关内容

热门资讯

透视线上(微扑克挂)外挂透明挂... 透视线上(微扑克挂)外挂透明挂辅助机制(辅助挂)发牌机制(真实有挂)-哔哩哔哩1、玩家可以在微扑克挂...
透视模拟器(wepoke最新)... 透视模拟器(wepoke最新)外挂透明挂辅助app(透视)辅助透视(有挂功能)-哔哩哔哩;揭秘教程安...
玩家必看教程(Wepoke必胜... 玩家必看教程(Wepoke必胜)外挂透明挂辅助软件(辅助挂)其实是真的有挂(2021已更新)(哔哩哔...
推荐几款新版!德扑网上(weP... 推荐几款新版!德扑网上(wePOKE)外挂透明挂辅助APP(透视)新版2024教程(有挂教学)-哔哩...
我来教教大家(微扑克透明挂)外... 我来教教大家(微扑克透明挂)外挂透明挂辅助工具(辅助挂)德州ai机器人(有挂技巧)-哔哩哔哩 科技详...
一起来讨论(impoker德州... 一起来讨论(impoker德州)外挂透明挂辅助脚本(透视)辅助透视(有挂神器)-哔哩哔哩;(需添加指...
透明工具(Wepoke代打)外... 透明工具(Wepoke代打)外挂透明挂辅助器安装(辅助挂)原来真的有挂(2024已更新)(哔哩哔哩)...
透视实锤!扑克王(WEPoke... 透视实锤!扑克王(WEPoke)外挂透明挂辅助APP(辅助挂)新版2024教程(有挂讲解)-哔哩哔哩...
程序员教你(德扑之星功能)外挂... 程序员教你(德扑之星功能)外挂透明挂辅助工具(辅助挂)发牌规律(有挂神器)-哔哩哔哩;亲们利用一分钟...
我来教大家(wepoke线上)... 《wepoke线上软件透明挂》是一款多人竞技的wepoke线上辅助透视游戏,你将微扑克对手来到同一个...