首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >React.js No-op in component?

React.js No-op in component?
EN

Stack Overflow用户
提问于 2021-04-16 03:12:56
回答 1查看 167关注 0票数 1

我相信no-op来自我的useEffect,所以我试图实现一个清理。然而,我仍然有关于no-op的问题。这是错误:

无法对已卸载的组件执行React状态更新。这是一个no-op,但它表明您的应用程序中存在内存泄漏。要修复此问题,请在useEffect清理函数中取消所有订阅和异步任务。在div (由ForwardRef(栅格)创建)中的ExportFormats (由父级创建)中,在ForwardRef(栅格)(由WithStyles(ForwardRef(栅格)创建)创建)中,在WithStyles(ForwardRef(栅格))中(由父级创建)

下面是我的useEffect实现:

代码语言:javascript
复制
React.useEffect(() => {
    let isSubbed = true;
    const fetchFormats = async (subbedStatus) => {
        getEGMFormats(enums.EGM_EXPORT_FORMATS)
            .then((data) => {
                subbedStatus && setResponse(data.data);
            })
            .catch((err) => {
                subbedStatus && setErrorStatusCode(err.response.status);
            })
            .finally(() => {
                subbedStatus && setIsSubmitting(false);
            });
    };
    fetchFormats(isSubbed);
    return () => {
        cancelAxios();
        isSubbed = false;
    };
}, [setErrorStatusCode]);

正在导入cancelAxios函数调用,但它的功能如下:

导出常量cancelAxios = () => source.cancel();

我在这里做错了什么,或者它可能在我的组件中的其他地方?这是组件中唯一的useEffect吗?

EN

回答 1

Stack Overflow用户

发布于 2021-04-16 07:12:18

嗯..。您应该使用闭包中的标志变量,而不是函数参数...

代码语言:javascript
复制
React.useEffect(() => {
    let isSubbed = true;
    const fetchFormats = async () => {
        getEGMFormats(enums.EGM_EXPORT_FORMATS)
            .then((data) => {
                isSubbed&& setResponse(data.data);
            })
            .catch((err) => {
                isSubbed&& setErrorStatusCode(err.response.status);
            })
            .finally(() => {
                isSubbed&& setIsSubmitting(false);
            });
    };
    fetchFormats();
    return () => {
        cancelAxios(); // not sure what is this...
        isSubbed = false;
    };
}, [setErrorStatusCode]);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67114739

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档