Loading [MathJax]/jax/output/CommonHTML/config.js
社区首页 >问答首页 >在这种情况下,有没有办法避免无限循环的依赖关系,并将正确的依赖关系传递给useEffect钩子?

在这种情况下,有没有办法避免无限循环的依赖关系,并将正确的依赖关系传递给useEffect钩子?
EN

Stack Overflow用户
提问于 2021-04-01 17:59:02
回答 1查看 49关注 0票数 0

我有一个自定义钩子,它获取一个回调作为其中一个参数,并在useEffect中调用它

代码语言:javascript
代码运行次数:0
复制
const customHook = (callback: Function) => {
  ...
  useEffect(() => {
    if (something) {
      callback();
    }
  }, [other things, callback]);

  return {values}
}

这里的问题是,callback是一个函数,它导致useEffect在循环中运行。EsLint建议在父组件中使用useCallback。因此,我决定将这个callback包装在一个useCallback中,我将其命名为customHook

因此,在我的组件中会有类似这样的内容:

代码语言:javascript
代码运行次数:0
复制
const memoizedCallback = useCallback(() => {
    myFunction(values);
  }, [values, myFunction]);

  const { values } = customHook(memoizedCallback);

在这里我有我的问题-从customHook返回myFunction的依赖项,并且在它们定义之前我不能使用它们。但出于同样的原因,我也不能将memoizedCallback放在customHook调用之后。

现在我被困在这个无限的依赖循环中,我不确定如何解决这个问题,即使是以某种方式,而不是忽略eslint警告。

因此,任何想法和解决方案都将非常受欢迎:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-01 18:35:19

如果更改回调不会导致执行useEffect块,请将callback设置为ref:

代码语言:javascript
代码运行次数:0
复制
const customHook = (callback: Function) => {
  const fn = useRef(callback);
  
  ...
  
  useEffect(() => {
    fn.current = callback;
  })
  
  useEffect(() => {
    if (something) {
      fn.current(); // fn.current?.() if fn.current might be undefined
    }
  }, [something]);

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

https://stackoverflow.com/questions/66909437

复制
相关文章
解决循环依赖问题:优雅处理依赖关系的技巧
在软件开发中,依赖是不可避免的。我们经常需要在应用程序的不同组件之间建立依赖关系,以实现功能的模块化和复用。然而,有时候依赖关系可能变得复杂,甚至导致循环依赖的问题。在本文中,我们将通过项目中实际遇到的异常探讨一些解决循环依赖问题的技巧,帮助你在开发过程中优雅地处理依赖关系。
修己xj
2023/08/25
8510
解决循环依赖问题:优雅处理依赖关系的技巧
如何编码检查依赖关系是否有循环依赖
之前做数据仓库的运维,上线部署时需要处理很多任务的依赖关系,所谓任务,就是一个一个 shell 脚本或者存储过程等批处理任务,他们之间是有依赖关系的,由于数据仓库的任务超级多,约 3000 多个任务,这么多的任务是无法使用一张有向无环图来表示,因此依赖关系除了使用直观的有向连线来配置,还使用了隐藏式的配置,就是依赖关系无法使用有向线条来直观的看到。
somenzz
2020/11/25
2.8K0
依赖关系(“使用”关系)
依赖关系是一种使用关系,如果A类中的某个方法使用了B类对象,那么就可以说A类依赖B类。
全栈程序员站长
2022/09/06
1.1K0
RDD依赖关系
其中有一个就是 - A list of dependencies on other RDDs(依赖关系)
用户1483438
2022/04/28
7900
helm中的依赖关系
Helm是一个作用于k8s的包管理工具。类似于其它的包管理工具如apt/yum ,应用开发者可以管理应用包chart之间的依赖关系,以便于部署复杂的k8s应用。
用户8851924
2022/11/15
2.8K0
论Spring中循环依赖的正确性与Bean注入的顺序关系
最近在做项目时候遇到一个奇葩问题,就是bean依赖注入的正确性与bean直接注入的顺序有关系,但是正常情况下明明是和顺序没关系的啊,究竟啥情况那,不急,让我一一道来。
加多
2018/09/06
1.5K0
函数依赖关系的例子_部分函数依赖
通过{学生学号, 选修课程名}可以得到{该生本门选修课程的成绩},而通过单独的{学生学号}或者单独的{选修课程名}都无法得到该成绩,则说明{该生本门选修课程的成绩}完全依赖于{学生学号,选修课程名}
全栈程序员站长
2022/11/15
1.6K0
巧用 Lazy 解决.NET Core中的循环依赖关系
在构建应用程序时,良好的设计应该应避免服务之间的循环依赖, 循环依赖是指某些组件直接或间接相互依赖,比如下面这样
全球技术精选
2021/01/21
1.4K0
巧用 Lazy 解决.NET Core中的循环依赖关系
怎么解决网络请求的依赖关系
怎么解决网络请求的依赖关系:当一个接口的请求需要依赖于另一个网络请求的结果 思路1:操作依赖:NSOperation 操作依赖和优先级(不适用,异步网络请求并不是立刻返回,无法保证回调时再开启下一个网络请求) [operationB addDependency:operationA]; // 操作B依赖于操作 思路2:逻辑判断:在上一个网络请求的响应回调中进行下一网络请求的激活(不适用,可能拿不到回调) 思路3:线程同步 -- 组队列(dispatch_group) dispatch_queue_t que
陈满iOS
2018/09/10
9290
具有依赖关系的并行操作执行
今天看到看到一篇MSDN文章《Parallelizing Operations With Dependencies》,作者是微软Parallel Computing Platform团队的一个开发经理。文中提供出一种用于并行执行一组具有依赖关系的操作的解决方案,这不由得想起我在一年之前写的一个具有相同的功能的组件。于是翻箱倒柜找了出来,进行了一些加工,与大家分享一下。
javascript.shop
2019/09/04
6K0
具有依赖关系的并行操作执行
具有依赖关系的并行操作执行
今天看到看到一篇MSDN文章《Parallelizing Operations With Dependencies》,作者是微软Parallel Computing Platform团队的一个开发经理。文中提供出一种用于并行执行一组具有依赖关系的操作的解决方案,这不由得想起我在一年之前写的一个具有相同的功能的组件。于是翻箱倒柜找了出来,进行了一些加工,与大家分享一下。 一、问题分析 我们知道,较之串行化的操作,并行计算将多个任务同时执行,从而充分利用了资源,提高了应用的整体性能。对于多个互不相干的操作,我们
蒋金楠
2018/01/16
2.7K0
具有依赖关系的并行操作执行
springboot依赖springframework版本关系
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/137385.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/05
2.1K0
Spring 事务、异步和循环依赖有什么关系?
在 Spring 自调用事务失效,你是怎么解决的? 有小伙伴提出可以自己注入自己来解决事务失效。
程序员小航
2021/02/23
7810
Spring 事务、异步和循环依赖有什么关系?
Spring之对象依赖关系(依赖注入Dependency Injection)
别先生
2018/01/02
1K0
Power BI: 使用计算列创建关系中的循环依赖问题
文章背景: 在表缺少主键无法直接创建关系,或者需要借助复杂的计算才能创建主键的情况下,可以利用计算列来设置关系。在基于计算列创建关系时,循环依赖经常发生。下面先介绍一个示例,然后讲解循环依赖产生的原因,以及如何避免空行依赖。
Exploring
2023/09/10
8270
Power BI: 使用计算列创建关系中的循环依赖问题
面试官:如何解决React useEffect钩子带来的无限循环问题
尽管useEffect Hook在React生态系统中很常见,但它需要时间来掌握。因此,许多新手开发人员在配置他们的useEffect函数时,会导致无限循环问题。在本文中,您将了解不同场景下带来的无限循环问题以及如何解决它们。
前端修罗场
2022/07/29
5.2K0
面试官:如何解决React useEffect钩子带来的无限循环问题
iOS实例——依赖关系的分类展现列表
因为项目需要实现了一个分类查找的界面,多个类别/指标之间有多级依赖关系,效果如下:
Cloudox
2022/01/07
7810
iOS实例——依赖关系的分类展现列表
NET Framework 版本和依赖关系
CNXY
2017/12/22
2.3K0
认识Power Pivot中的循环依赖关系并消除影响后计算
会显示一个循环关系的箭头,我想这个概念应该比较好理解。当然我们也可以对循环依赖进行计算,可以参考Excel的里面的功能。
逍遥之
2020/03/24
2.1K0
点击加载更多

相似问题

useEffect更新它自己的依赖关系,导致无限循环

119

useEffect钩子依赖关系-重新呈现问题

45

具有依赖关系的useEffect被无限调用

12

在不触发useEffect的`useEffect`内设置useEffect钩子的依赖关系

233

useEffect警告说缺少依赖关系会导致无限循环。

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文