javascript - 警告:无法对未安装的组件执行 React 状态更新,方法只需要运行一次
问题描述
我正在尝试在组件安装时获取广告商列表,但这会导致内存泄漏,有什么建议吗?我将不胜感激:)
useEffect(() => {
const fetchData = async () => {
const list = await Api.listAdvertisers();
setAdvertisers(list);
};
fetchData();
}, []);
解决方案
您可以在主范围内声明 fetchData 函数,并且可以通过在 useEffect 范围内声明 didMount 变量来检查该函数是否被调用。
const didMount = useRef(false);
const fetchData = async () => {
const list = await beeswaxService.listAdvertisers();
setAdvertisers(list);
return;
};
useEffect(() => {
if(!didMount.current){
didMount.current = true;
fetchData();
}
}, []);
推荐阅读
- javascript - 有人可以解释我的代码示例中 Functions 参数之间的关系吗
- python - 无法通过套接字连接到本地 MySQL 服务器\'/cloudsql/my_project:us-central1:my_instance\'
- libtorch - 如何修复:CMake 构建成功后 Visual Studio 中出现“未找到torch.dll”错误
- python - Flask 请求:确定确切路径,包括是否有问号
- bash - 通过 bash 脚本运行工具
- java - 如何使用 escpos-2.2 jar & jSerialComm-2.5.0 jar 在热敏收据打印机上打印收据
- python-3.x - KivyMD 中的 MDDropDownMenu 错误(适用于 Python 3.6 上的 Kivy)
- javascript - vue2-google-maps 如何使用 Embed API “放置模式”
- pdf - PDFBOX - 签署 PDF 时,不调用 SignatureInterface 的签名
- php - PHP 和 SQL 中的日期转换