我有多个相互冲突的状态,导致我的导航项在滚动后显示然后消失。在我尝试检查较小的设备之前,我的滚动事件运行良好。中定义的状态似乎checkWidth导致导航项目显示。在这种情况下,有没有更好的方法来处理多个状态?所以他们只在应该的时候开火。任何帮助表示赞赏。constructor(props) { super(props); this.state = { isTop: true, };}onScroll(isTop) { this.setState({ isTop });}componentDidMount() { this.updateWindowDimensions(); window.addEventListener('resize', this.updateWindowDimensions); document.addEventListener('scroll', () => { const isTop = window.scrollY < window.innerHeight - 50; if (isTop !== this.state.isTop) { this.onScroll(isTop); } }); this.checkWidth = () => { const match = window.matchMedia(`(max-width: 768px)`); if (match) { this.setState({isTop: false}); } }; this.checkWidth(); window.addEventListener('resize', this.checkWidth);}
添加回答
举报
0/150
提交
取消