首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用自定义钩子通过AJAX请求封装useEffect

使用自定义钩子通过AJAX请求封装useEffect
EN

Stack Overflow用户
提问于 2021-04-21 22:26:08
回答 1查看 62关注 0票数 1

全!我是个新手。目前,我遇到了一个与react挂钩相关的问题。问题说明如下:设计一个自定义钩子来封装useEffect,它可以执行副作用操作(如AJAX请求),设计的自定义钩子可以跳过第一次操作,从第二次开始执行副作用操作。

这里我设计了一个钩子,但是它是不正确的。我知道钩子的关键是如何判断这是否是第一次调用自定义钩子。有人告诉我应该使用useRef来计算counter,但我不太确定如何用useRef来设计它。你们能帮我解决这个问题吗?

代码语言:javascript
复制
function useMyCoustomHook(func, dependencies){
    let counter = 1;
    useEffect(()=>{
       if(counter === 1){
         counter--;
       }else{
         func();
       }
    }, [dependencies])
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-21 22:34:08

我删除了依赖项,即使组件reRenders与您的let counter = 1;不同,您也应该使用记住其值的ref

代码语言:javascript
复制
function useMyCoustomHook(func, dependencies){
    let counter = useRef(0);
    useEffect(()=>{
       if(counter.current === 0){
         counter.current++;
       }else{
         func();
       }
    }, [dependencies])

   
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67197850

复制
相关文章

相似问题

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