【问题标题】:Using eventlistener in reactjs(JSX)在 reactjs(JSX) 中使用事件监听器
【发布时间】:2014-08-14 00:28:22
【问题描述】:

我正在尝试学习 Reactjs,但我无法解决。 我想将粘性标题类添加到使用 Reactjs 呈现的表中,但我没有使用此代码/伪代码取得任何成功。

handleScroll: function(e){
  var header = this.root.querySelector('.header');
var origOffsetY = header.offsetTop;
  window.scrollY >= origOffsetY ? header.addClass('sticky'): header.removeClass('sticky');
},

componentDidMount : function(){
window.addEventListener('handleScroll',this.handleScroll);
},

我正在尝试使用这个 Javascript 函数:

<script>
var header = document.querySelector('.header');
var origOffsetY = header.offsetTop;

function onScroll(e) {
  window.scrollY >= origOffsetY ? header.classList.add('sticky') :
                                  header.classList.remove('sticky');
}

document.addEventListener('scroll', onScroll);
</script>

但我没有取得任何成功。有没有更简单的方法在 Reactjs 中实现 javascript 函数?

【问题讨论】:

    标签: reactjs react-jsx


    【解决方案1】:

    排队

    window.addEventListener('handleScroll', this.handleScroll);
    

    我猜你的意思是:

    window.addEventListener('scroll', this.handleScroll);
    

    【讨论】:

    • 是的,我也在控制台中看到此错误:无法读取未定义的属性 'querySelector'。
    • 什么是this.root?当您尝试在handleScroll 中访问它时,它没有定义。
    • 我在向下滚动时看到此错误,因此我认为该功能在滚动期间被触发,但我可能必须弄清楚这个对象。一定是一些语法错误。感谢您的回复。
    • 很抱歉打扰大家,但我所要做的就是滚动原版 JS 函数 /************************ ****/ handleScroll: function(e){ var header = document.querySelector('.header'); var origOffsetY = header.offsetTop; window.scrollY >= origOffsetY ? header.classList.add('sticky') : header.classList.remove('sticky'); }, componentDidMount : function(){ window.addEventListener('scroll',this.handleScroll); }, /**********************/
    猜你喜欢
    • 2019-04-01
    • 2017-09-20
    • 1970-01-01
    • 1970-01-01
    • 2018-10-12
    • 2021-04-13
    • 2019-09-25
    • 1970-01-01
    • 2023-03-14
    相关资源
    最近更新 更多