[英]Debounce function called multiple times
我在 useEffect 中调用以下useEffect
。
useEffect(() => {
loadData();
}, [amount]);
loadData
function 使用 Lodash debounce
function。当我从输入更新金额时, loadData
根据amount
字符串的长度被调用多次。
const loadData = useCallback(
debounce(() => {
console.log('called!');
// Fetch data from API ...
}, 1000),
[amount]
);
尽管使用useCallback
hook 和 1s debounce。 它返回多次。 如何解决?
提前致谢
当amount
发生变化时, useCallback
生成一个新的 function 和一个新的去抖动计时器。 要解决将amount
参数传递给 function 的问题,并从useCallback
的 deps 数组中删除amount
:
const loadData = useCallback(
debounce((amount) => {
console.log('called!', amount);
// Fetch data from API ...
}, 1000),
[]
);
useEffect(() => {
loadData(amount);
}, [amount]);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.