gpt4 book ai didi

javascript - Lodash debounce 触发每一个变化

转载 作者:行者123 更新时间:2023-12-04 13:15:55 25 4
gpt4 key购买 nike

我正在尝试通过 React 中的输入更改来消除发送 Redux Action 的抖动。

const debouncedSubmit = debounce(() => dispatch(new TaskAnswerSubmit({index: props.index, text: answer})), 1000)

function onChange(e){
setAnswer(e.target.value)
debouncedSubmit()
}

这会延迟发送 Action ,但仍会为每次按键发送一个 Action 。我想在输入完成后稍等片刻,然后再发送一次操作。

我在这里做错了什么?

最佳答案

我相信这里发生的情况是每次按键都会导致重新渲染,并且在每次渲染期间它都会创建一个新的 debouncedSubmit 函数,并且每个函数都会触发。尝试使用 React 的 useCallback 方法来内存函数,这样它就不会在重新渲染时重新创建:

const debouncedSubmit = useCallback(debounce(() => dispatch(new TaskAnswerSubmit({index: props.index, text: answer})), 1000), []);

关于javascript - Lodash debounce 触发每一个变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60517174/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com