简体   繁体   English

React / Apollo 客户端:尝试在 useEffect 挂钩中使用 LazyQuery

[英]React / Apollo client: try to use LazyQuery in useEffect hook

I try to run a test query after my component has rendered.在我的组件呈现后,我尝试运行测试查询。 Bellow my code.咆哮我的代码。

The testQuery function executed in the useEffect don't do anything.在 useEffect 中执行的 testQuery function 不执行任何操作。 I dunno why... any idea?我不知道为什么......有什么想法吗?

    const Card2 = (props) => {

      const [count, setCount] = useState(0);

      console.log (`count :: ${count}`);

      const [testQuery,{ loading, data}] = useLazyQuery (TEST_QUERY);

      if(loading) debugger;


      useEffect(() => {
        console.log('useEffect');
        testQuery();
        debugger;
      },[count]);

      return(
        <div className={classes.Content} >
          <button className={classes.Price} onClick = {() => setCount(count + 1)}>
          </button>
        </div>
      );
    };
const Card2 = (props) => {

  const [count, setCount] = useState(0);
  const [fetchedData, setFetechedData] = useState([])
  console.log (`count :: ${count}`);

  const [testQuery,{ loading, data}] = useLazyQuery (TEST_QUERY);

  if(loading) debugger;


  useEffect(() => {
    console.log('useEffect');
    testQuery();
    debugger;
  },[count]);

  useEffect(() => {
    data && setFetechedData([...fetchedData, data])
  },[data]);

  return(
    <div className={classes.Content} >
      <button className={classes.Price} onClick = {() => setCount(count + 1)}>
      </button>
    </div>
  );
};

You have to handle the response from the query in some way.You could add another useEffect to listen for changes.您必须以某种方式处理来自查询的响应。您可以添加另一个 useEffect 来监听更改。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM