每次击键都会调用 api

2024-03-06

我尝试创建这个反应网站,我可以在其中搜索一个地方。我遇到一个问题,因为每当我在搜索框中输入新字母时,就会调用 api,这会使网站非常慢。我不希望它每次击键时都调用 api。我认为这是因为第二个 useEffect,但如果我删除该 useEffect,则搜索结果中不会显示任何结果。我该如何解决这个问题。在类组件中,我认为我们可以使用 componentDidUpdate 来做到这一点,但在这里我使用了 useEffect 但没有得到所需的结果。

这是代码

App.js

  useEffect(() => {
    getItems();

    if (finalSearch) {
      filterData();
    } else {
      handleRequest();
    }
  }, [search, finalSearch]);

 

看起来您一开始就调用 api,然后一旦搜索组件有了值,就可以过滤数据。

如果您想在每次击键时停止获取 API,只需删除 useEffect 中的 else 子句即可。

  useEffect(() => {
    getResults();

    if (finalSearch) {
      filterData();
    }
  }, [search, finalSearch]);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

每次击键都会调用 api 的相关文章

随机推荐