我有问题,因为我正在尝试使用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}
答案 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()};