我在 React 中构建了一个组件,它应该在窗口滚动时更新自己的样式以创建视差效果。
组件render方法如下所示:
  function() {
    let style = { transform: 'translateY(0px)' };
    window.addEventListener('scroll', (event) => {
      let scrollTop = event.srcElement.body.scrollTop,
          itemTranslate = Math.min(0, scrollTop/3 - 60);
      style.transform = 'translateY(' + itemTranslate + 'px)');
    });
    return (
      <div style={style}></div>
    );
  }
这不起作用,因为 React 不知道组件已更改,因此不会重新渲染组件。
我尝试将 的值存储在itemTranslate组件的状态中,并setState在滚动回调中调用。然而,这使得滚动无法使用,因为这非常慢。
关于如何做到这一点的任何建议?