我有一个事件侦听器,它调度一个动作。
window.addEventListener('resize', () => {
store.dispatch(screenResize());
})
我正试图用lodash抑制(或消除反弹)
问题是,我应该怎么做
const throttledScreenResize = _.throttle(screenResize(), 250)
window.addEventListener('resize', () => {
store.dispatch(throttledScreenResize);
})
或
const throttledScreenResize = _.throttle(() => store.dispatch(screenResize()), 250)
window.addEventListener('resize', throttledScreenResize)
还是都不是?那怎么了?
谢谢
答案 0 :(得分:1)
采取第二种方法:
在store.dispatch(..)
内调用_throttle
。这样可以确保store.dispatch
每250毫秒执行一次以上
const throttledScreenResize = _.throttle(() => store.dispatch(screenResize()), 250)
window.addEventListener('resize', throttledScreenResize)
在第一种方法中:在每个store.dispatch
事件中调用resize
。