将数组传递给 useEffect 依赖项列表

2023-11-30

每 5 秒长轮询会产生一些数据,我希望我的组件在每次数组的一项(或数组长度本身)发生变化时调度一个操作。 在将数组作为依赖项传递给 useEffect 时,如何防止 useEffect 进入无限循环,但如果任何值发生变化,仍然设法调度一些操作?

useEffect(() => {
  console.log(outcomes)
}, [outcomes])

where outcomes是一个 ID 数组,例如[123, 234, 3212]。数组中的项目可能会被替换或删除,因此数组的总长度可能(但不必)保持不变,因此传递outcomes.length因为依赖性并非如此。

outcomes来自reselect的自定义选择器:

const getOutcomes = createSelector(
  someData,
  data => data.map(({ outcomeId }) => outcomeId)
)

你可以通过JSON.stringify(outcomes)作为依赖列表:

阅读更多here

useEffect(() => {
  console.log(outcomes)
}, [JSON.stringify(outcomes)])
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将数组传递给 useEffect 依赖项列表 的相关文章

随机推荐

  • 将 Jenkins 管道阶段显示为失败,但不会导致整个作业失败

    这是我正在使用的代码 node stage build echo build stage tests echo tests stage end to end tests def e2e build job end to end tests
  • 使用 FCM 在 Apple Safari 中推送通知

    我们在 Chrome 和 Firefox 中使用 FCM 实现了推送通知 并且运行良好 但 Safari 不支持 FCM 强制要求的 Service Workers 有人处理过此类问题吗 有什么建议么 虽然 Service Workers
  • 在Android中捕获自定义列表视图的点击

    我使用了一个自定义 XML 文件来创建将我的数据库游标绑定在 ListActivity 中 XML 文件中的每个项目都有 2 个按钮 我想捕获按钮的点击事件和列表中的位置 这是我的 XML 文件
  • 如何增加 MATLAB 2014b 散点图中图例的标记大小? [复制]

    这个问题在这里已经有答案了 我发现散点图中的标记大小和 MATLAB 2014b 中的图例不同 我搜索并找到了早期版本的 MATLAB 中的一些解决方案 这些解决方案不适用于最新版本 在我当前的版本中 图例中的标记尺寸非常小 几乎无法区分
  • 媒体播放器和播放延迟

    我创建了一个小应用程序 即媒体播放器 我有方法 我有一首歌 我想在单击按钮后延迟播放声音 我怎样才能做到这一点延迟 我想点击按钮 5 秒后音乐就会播放 我在用 MediaPlayer create获取歌曲和mediaplayer start
  • C++ 将派生类 shared_ptr 传递给模板化函数

    首先是应该起作用的东西 然后是不起作用的东西 为什么不是这个问题 我声明两个类 class Base class Derived public Base 然后我在其他地方有以下功能 void foo shared ptr base 下面的代
  • wxpython——线程和窗口事件

    我有一个 wxPython 应用程序 http www OpenSTV org 使用多轮方法计算选票 我想做两件事 1 对于大量选票 这可能有点慢 所以我想向用户显示一个进度对话框 这样他就不会认为应用程序被冻结 2 我想允许用户手动打破平
  • 在 google go 中使用 olivere/elastic 更新 ElasticSearch 中的记录

    我正在使用 go 在弹性搜索中插入一条记录 如下所示 https github com olivere elastic现在 如果我必须部分更新它 假设只有一个条目 如 名称 那么我想使用 UPDATE API 我找不到任何描述如何在 oil
  • JSF RichTable 合并标题中的行/列

    我想做的是做这个布局RichTable在其标题中有 3 列 3 5 1 2 4 6 我已经习惯了this 8 2 完成任务的资源 富脸4 0 0 但相反 我最终得到了没有任何合并的普通表行 您能解释一下吗 Update 关于来自的答案瓦西尔
  • 多个组件 - 性能损失?

    我有一个清单System IO Ports SerialPort一个程序集中的对象 并且我计划处理来自另一个程序集的 Data Receieved 事件 我想知道这是否会以某种方式影响性能 会吗 恐怕我不太清楚 CLR 如何管理程序集 谢谢
  • 从 VS 05 中的资源设置应用程序图标

    我知道我可以将图标添加到项目的 Resources resx 文件中 然后从代码中引用该图标 如何从资源中设置整个EXE的图标 我所看到的只是浏览另一个文件的地方 我想使用我的资源中的当前图标文件 而不必在我的项目中拥有重复的文件 than
  • 如何将两个独立但相似的代码库合并到一个 SVN 代表中?

    I have www example com 上的 var www cool codebase 并且我有 www example net 上的 var www cool codebase 代码库适用于在不同服务器上运行的同一 Web 应用程
  • 将 nil 排序到可选字符串数组的末尾

    如果我有一个可选字符串数组 并且我想以 nils 开头按升序对它进行排序 我可以在一行中轻松完成 b nil a sorted 0 lt 1 nil a b 但似乎没有任何类似简单的解决方案可以将 nil 排序到end数组的 使用大多数其他
  • 是否有 Visual Studio 插件的配置类型文件?

    创建 Visual Studio 加载项时 如何利用该加载项的 app config 如果我向项目添加一个并部署它 那么当加载项运行并且我以编程方式尝试通过 ConfigurationManager AppSettings 访问它时 它不会
  • xargs 在搜索中尊重通配符

    我有一个名为 file1 txt 的文件 dir1 dir2 dir3 我想使用 xargs 检查某些文件是否存在于文件系统中 如下所示 cat file1 txt xargs i ls projects analysis7 meta bw
  • IHttpContextAccessor.HttpContext.User.Identity 显示 CurrentUserService 服务中的所有 null 属性

    我正在尝试使用Jason Taylor 的简洁架构模板 这个模板使用 NSwag 自动创建 TypeScript 客户端 Angular 但我不需要创建 TS 客户端 所以我的主要目标是用 Razor Pages 替换它 我已经能够取得高分
  • Cocoa:每次方法调用都会中断?

    通常 在调试时 了解以什么顺序调用类的哪些方法对我来说很重要 天真的解决方案 到目前为止我一直在使用 是弹出一个NSLog在每个方法的顶部 但这是耗时的 重复的 丑陋的 并且如果我在调试后忘记删除日志 会让我的代码看起来很幼稚 一个更干净的
  • Toast 不从列表中选定的项目生成文本

    我在android中用列表视图制作了一个简单的应用程序 因为我想在选择一个项目时进行吐司 我已经尝试如下 但它不起作用 我的代码如下 main java package com example listview import java ut
  • ZF2 骨架应用程序抛出 500 错误

    当尝试使用以下命令部署骨架应用程序时 git clone git github com zendframework ZendSkeletonApplication git cd ZendSkeletonApplication php com
  • 将数组传递给 useEffect 依赖项列表

    每 5 秒长轮询会产生一些数据 我希望我的组件在每次数组的一项 或数组长度本身 发生变化时调度一个操作 在将数组作为依赖项传递给 useEffect 时 如何防止 useEffect 进入无限循环 但如果任何值发生变化 仍然设法调度一些操作