从addEventListener返回值

时间:2018-01-18 14:10:17

标签: javascript reactjs react-redux

我有问题,因为我正在尝试使用reducer和react-redux。 有没有办法返回滚动值?

case constans.SCROLL_POSY:
const test = window.addEventListener('scroll', () => {
        let supportPageOffset = window.pageXOffset !== undefined;
        let isCSS1Compat = ((document.compatMode || '') === 'CSS1Compat');
          scroll = supportPageOffset ? window.pageYOffset : isCSS1Compat ? document.documentElement.scrollTop : document.body.scrollTop;
        return scroll;
        });
return {...state, scrollY: test}

1 个答案:

答案 0 :(得分:-1)

不要使用addEventListener来获取滚动位置。只需使用该功能。 创建返回scrollTop的函数:

const getScrollTop = () => {
        let supportPageOffset = window.pageXOffset !== undefined;
        let isCSS1Compat = ((document.compatMode || '') === 'CSS1Compat');
          scrollTop = supportPageOffset ? window.pageYOffset : isCSS1Compat ? document.documentElement.scrollTop : document.body.scrollTop;
        return scrollTop;
}

然后在你的reducer中调用它:

case constans.SCROLL_POSY:
return {...state, scrollY: getScrollTop()};