我尝试创建这个反应网站,我可以在其中搜索一个地方。我遇到一个问题,因为每当我在搜索框中输入新字母时,就会调用 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(使用前将#替换为@)