javascript - 使用 React useEffect 进行清理
问题描述
好的,所以我通常理解我遇到的错误。
“无法对未安装的组件执行 React 状态更新。这是一个空操作,但它表明您的应用程序中存在内存泄漏。要修复,请取消 useEffect 清理函数中的所有订阅和异步任务。”
我知道我需要按照在 useEffect 函数中添加已安装组件的方式做一些事情。实际上,我不太确定如何用我正在做的事情来实现它。
useEffect(() => {
fetchShippingCountries(checkoutToken.id)
}, []);
useEffect(() => {
if (shippingCountry) fetchSubdivisions(shippingCountry);
}, [shippingCountry]);
useEffect(() => {
if (shippingSubdivision) fetchShippingOptions(checkoutToken.id, shippingCountry, shippingSubdivision);
}, [shippingSubdivision]);
我做了一些研究,这似乎是我需要遵循的形式,但它对我不起作用。
useEffect(() => {
let mounted = true;
fetchItems().then((newItems) => {
if (mounted) {
setItems(newItems);
}
});
return () => {
mounted = false;
};
}, []);
解决方案
推荐阅读
- plugins - 如何在 Nuxt 插件中使用错误功能?
- java - How to use the old progress bar in Java?
- entity-framework - 如何为多个视图使用流畅的语法
- php - PHP: How can I return data as response from $.post request?
- python - 从 MySQL Workbench 导入文本数据,最终得到的行数比我开始时的多
- php - 如何从 RSS 提要的帖子描述中删除图像?
- java - 为多个对象设置参数(背景颜色)
- ruby-on-rails - Rails 主动存储 - 打开/下载链接
- sql - 两个连续行之间的差异(按 ID)
- c++ - 将字符指针中的十六进制转换为十进制