Javascript 基于方法执行的发生情况进行去抖动
我有一些方法,已经被取消了。我需要的是消除不同代码片段的影响,不是基于时间,而是基于所述方法的执行情况。我需要在HOC中维护这个逻辑,它测量一些元素的位置并将其存储在redux存储中,以便在不同的地方使用。现在,该职位可能会引发一些行动。我需要的是某种形式的初始化检查,当Javascript 基于方法执行的发生情况进行去抖动,javascript,reactjs,redux,callback,debouncing,Javascript,Reactjs,Redux,Callback,Debouncing,我有一些方法,已经被取消了。我需要的是消除不同代码片段的影响,不是基于时间,而是基于所述方法的执行情况。我需要在HOC中维护这个逻辑,它测量一些元素的位置并将其存储在redux存储中,以便在不同的地方使用。现在,该职位可能会引发一些行动。我需要的是某种形式的初始化检查,当positionSaver在500ms这样的特定时间内不执行时,它将触发“READY”操作(因为位置最终会稳定下来,如果没有执行,就会通知这一点)。但每当位置被保存时,计时器就会重置,我需要在所述组件的不同渲染之间共享它,这样计
positionSaver
在500ms这样的特定时间内不执行时,它将触发“READY”操作(因为位置最终会稳定下来,如果没有执行,就会通知这一点)。但每当位置被保存时,计时器就会重置,我需要在所述组件的不同渲染之间共享它,这样计时器就不会重置
我一直在努力实现这一目标。下面是我当前的代码。有什么建议吗
export default <P extends object, T extends HTMLElement>(
Component: React.ComponentType<P>,
forwardPropName: string = 'ref',
): React.FC<P & IProps<T>> => ({
name,
forwardRef,
...props
}: IProps<T>) => {
const dispatch = useDispatch();
const position = usePosition<T>(forwardRef);
const savePositionFn = (key: NameType, position: DOMRect) => {
dispatch(
LayoutActions.seElementPosition({
[name]: { position },
}),
);
};
const positionSaver = useDebounce(savePositionFn);
// call when position not saved for some amount time.
const initialized = () => console.log('initialized');
useEffect(() => {
positionSaver(name, position);
}, [position, name]]); //don't put `positionSaver` here
return (
<Component {...{ [forwardPropName]: forwardRef }} {...(props as P)} />
);
};
导出默认值(
成分:反应。成分类型
,
forwardPropName:string='ref',
):React.FC
=>({
名称
forwardRef,
…道具
}:IProps)=>{
const dispatch=usedpatch();
常量位置=使用位置(forwardRef);
const savePositionFn=(键:NameType,位置:DOMRect)=>{
派遣(
LayoutActions.seElementPosition({
[姓名]:{position},
}),
);
};
const positionSaver=useDebounce(保存位置fn);
//在一段时间内未保存位置时调用。
const initialized=()=>console.log('initialized');
useffect(()=>{
位置保护程序(名称、位置);
},[position,name]];//不要在这里放'positionSaver'
返回(
);
};