我有以下TSX代码:
public render() {
return (
<div onWheel={this.onWheel}>
{children}
</div>
);
}
private onWheel(event: React.SyntheticEvent<HTMLDivElement>) {...}
我想使用RxJS来限制this.onWheel
次来电,以防止频繁的方法调用。
我该怎么做?
答案 0 :(得分:3)
直接的解决方案是使用主题:
render() {
return (
<div onWheel={e => this.onWheel$.next(e)}>
{children}
</div>
);
}
componentWillMount() {
this.onWheel$ = new Rx.Subject();
this.onWheel$.throttleTime(500).subscribe(this.onWheel);
}
componentWillUnmount() {
this.onWheel$.unsubscribe();
}
onWheel(event) {...}
有关工作示例,请参阅此jsfiddle。