gpt4 book ai didi

reactjs - 使用 React useEffect 时我的应用程序崩溃了

转载 作者:行者123 更新时间:2023-12-03 14:12:02 26 4
gpt4 key购买 nike

我正在将类组件更改为功能组件,并且我正在使用钩子(Hook)和 useEffect,因此我的应用程序变得非常慢并且崩溃而没有任何错误

import React, { useState, useEffect } from 'react';
import Toolbar from '@material-ui/core/Toolbar';

const FancyToolBar = ({ children }) => {
const [backGround, togglebackGround] = useState('white');
const listenScrollEvent = () => {
if (window.scrollY > 80) {
togglebackGround('black');
} else {
togglebackGround('white');
}
};
useEffect(() => {
window.addEventListener('scroll', listenScrollEvent);
});
const logo = backGround === 'white'
? <img src="/images/1.jpg" alt="" style={{ width: '50px !important', height: '50px' }} />
: <img src="/images/2.png" alt="" style={{ width: '50px !important', height: '50px' }} />;
return (
<Toolbar style={{ backgroundColor: backGround }}>
{logo}
{children}
</Toolbar>
);
};


export default FancyToolBar;

最佳答案

有两件事您需要解决。

首先:您需要清理您的eventListener

第二:仅在初始挂载时通过添加 [] 作为 useEffect 的第二个参数来添加事件监听器

useEffect(() => {
window.addEventListener('scroll', listenScrollEvent);
return () => {
window.removeEventListener('scroll', listenScrollEvent);
}
}, []);

关于reactjs - 使用 React useEffect 时我的应用程序崩溃了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54010272/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com