函数式
1、创建了一个定时器,你需要在组件卸载时清理:
javascript
useEffect(() => {
const id = setInterval(() => {
console.log('Hello');
}, 1000);
return () => {
// 组件卸载时执行
clearInterval(id);
};
}, []); // 空依赖数组意味着仅在组件挂载时运行一次
2、确保初始化函数initData不会在组件卸载后继续执行。
javascript
useEffect(() => {
let unmount = false;
(async () => {
if (!unmount) {
initData();
}
})();
return () => {
unmount = true;
};
}, [initData]);
Class
javascript
componentWillUnmount = () => {
this.setState = () => false;
};