【发布时间】:2020-05-14 06:21:09
【问题描述】:
所以我的问题可能是一个常见问题,但我还没有看到如何使用钩子/功能组件来解决问题的解释。
我有一个受控输入,它只是附加了一个简单的状态。当这个输入发生变化时,它有一个处理程序首先更新所述状态,然后将状态分派到存储。我想要做的是立即更新状态(以便用户可以在没有太多延迟的情况下输入)然后限制调度,例如每 300 毫秒发生一次,因为所述调度很昂贵并且是导致的打字延迟。
原来是这样的:
const handleChange = (event) => {
const { value } = event.target;
setName(value);
dispatch(actions.editCheckpointPeriod({ id, name }));
};
.
.
.
<S.Input value={name} onChange={handleChange} />
但是https://www.npmjs.com/package/throttle-debounce 包没有像我预期的那样工作:
const handleChange = (event) => {
const { value } = event.target;
setName(value);
throttle(300, false, () => {
dispatch(actions.nameAction({ id, value }));
});
};
在这种情况下,油门功能永远不会触发。
【问题讨论】:
标签: reactjs throttling