使用 redux useDispatch 时 useEffect 缺少依赖项

2023-11-24

每当使用反应钩子安装我的组件时,我想获取我的类别useEffect而不是在每次重新渲染时。但我不断收到此警告React Hook useEffect has a missing dependency:'dispatch'.

这是我的代码:

const categories = useSelector(state => state.category.categories);
const dispatch = useDispatch();

useEffect(() => {
    console.log('effecting');
    const fetchCategories = async () => {
       console.log('fetching');
       try {
            const response = await axios.get('/api/v1/categories');
            dispatch(initCategory(response.data.data.categories));
       } catch (e) {
           console.log(e);
       }
    }

    fetchCategories();
}, []);

您可以安全地将调度函数添加到 useEffect 依赖项数组中。如果你查看react-redux文档,特别是hooks部分,他们提到了这个“问题”。

只要相同,调度函数参考就会稳定 store 实例正在传递到 .一般情况下,那家店 实例在应用程序中永远不会改变。

然而,React hooks lint 规则不知道调度应该 是稳定的,并且会警告应该将调度变量添加到 useEffect 和 useCallback 的依赖数组。最简单的解决方案就是这样做:

export const Todos() = () => {
const dispatch = useDispatch();

useEffect(() => {
    dispatch(fetchTodos())
  // Safe to add dispatch to the dependencies array
  }, [dispatch])

}

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

使用 redux useDispatch 时 useEffect 缺少依赖项 的相关文章

随机推荐

  • 可变长度 rnn 填充和屏蔽填充梯度

    我正在构建一个 rnn 并使用 sequene length 参数来提供批次中序列的长度列表 并且批次中的所有序列都填充到相同的长度 然而 在进行反向传播时 是否可以屏蔽掉与填充步骤相对应的梯度 从而使这些步骤对权重更新的贡献为 0 我已经
  • 如何用另一个 JPanel 替换 JPanel

    我想用 JFrame 中的另一个 Jpanel 替换 Jpanel 我已经搜索并尝试了我的代码 但什么也没发生 这是我的代码 public class Frame extends JFrame private Container conta
  • HttpClient 和 PushStreamContent

    我将 PushStreamContent 与 REST API ASP NET Web API 结合使用 效果非常好 HttpClient 可以在服务器处理完整请求之前请求资源并获取 HTTP Response 服务器仍然写入推送流 作为
  • 在 Ruby 中查找多个正则表达式匹配的模式和位置

    这应该是一个简单的问题 但我找不到任何相关内容 给定 Ruby 中的正则表达式 对于每个匹配 我需要检索匹配的模式 1 2 但我还需要匹配的位置 我知道 运算符给我第一个匹配的位置 而string scan regex 给我所有匹配的模式
  • 当 scanf!=EOF 或 scanf==1 时?

    其他条件不变的情况下 格式良好的数据 良好的缓冲实践等等 是否有理由我更喜欢在返回时循环scanf是 1 而不是 EOF 我可能在某处读过这篇文章 或者其他什么 但我也可能有错 其他人怎么看 scanf返回成功转换的项目数 或错误时返回 E
  • 在 Android 中从一个活动移动到下一个活动

    我正在 Android 中开发一个具有登录屏幕的应用程序 现在我可以成功接收服务器的响应 成功响应后 它应该带我进入下一个活动或课程 在其中显示新的屏幕 活动 为了实现这个目标我应该做什么 在 Android 中 您可以使用 Intents
  • Linux 中的环境变量未使用 load_dotenv() 加载

    我正在尝试制作一个不和谐的机器人 当我尝试使用 load dotenv 加载 env 时 它不起作用 因为它说 Traceback most recent call last File home fanjin Documents Pytho
  • shell 中范围之间的随机数

    如何在 sh bin sh 而不是 bash 中生成 0 60 之间的随机数 这是卫星盒 没有 RANDOM变量和其他商品 cksum od od vAn N4 tu4 我想随机化 cron 作业时间 如果你有 tr head 和 dev
  • `PowerShell.Create()` 返回 null

    添加参考 PowerShellStandard Library 在默认情况下重现 net core项目 using System Management Automation using System Collections ObjectMo
  • 使用 Lion 上的 FSEvents 跟踪文件重命名/删除

    我正在尝试使用 FSEvents 来检测何时从特定文件夹添加 删除文件 目前 我围绕 FSEvents 实现了一个简单的包装器 它工作得很好 我得到了所有事件 但我现在遇到的问题是 当我在 Finder 中重命名文件时 我捕获了 2 个不同
  • 线程同步。为什么这个锁不足以同步线程[重复]

    这个问题在这里已经有答案了 可能的重复 线程同步 锁究竟如何使内存访问变得 正确 这个问题的灵感来自于这个 我们有以下测试课程 class Test private static object ms Lock new object priv
  • FXML 设置 TableView 列调整大小策略

    如何从 FXML 设置 TableView 的调整大小策略 我这样累了 但它不起作用
  • 使用 Homebrew 更新 OS X 上的 OpenSSL

    我使用的是 MacOS X 10 7 5 并且我需要更新的 OpenSSL 版本 因为握手失败 网上有很多教程 我尝试了以下方法 brew install openssl brew link openssl force 然而 它不起作用 o
  • mq_open() - 打开的文件太多

    我正在尝试编写一个客户端和服务器 它们将使用 POSIX 消息队列交换数据 我尝试通过查看在互联网上看到的示例和课程文档来做到这一点 但是 我陷入困境 当我运行它时 我收到 打开文件太多 错误 这是我的代码 Client int main
  • 将整数值范围映射到Python中的颜色

    我有从 0 到 10000 的整数 我想为每个整数映射一种颜色 然后根据整数值 我想检索与整数值对应的颜色的 RGB 等效值 基本上我想在两种或多种颜色之间有插值效果 例如如果颜色是绿色和红色 则绿色具有最小权重 0 红色具有最高权重 10
  • 使用 AJAX 通过 Flask-WTForms 将条目附加到 FieldList

    我使用 Flask WTForms 在 Flask 中制作了一个简单的表单 家长可以在其中注册自己和他的孩子 家长可以通过单击 添加孩子 按钮来注册任意数量的孩子 WTForms 通过使用 FieldList 功能使这变得非常容易实现 但是
  • LOAD DATA INFILE 轻松将 YYYYMMDD 转换为 YYYY-MM-DD?

    您好 我想导入一个 INFILE 但日期的形式为 AADR 20120403 31 43 31 43 31 4 31 4 1100 AAU 20120403 2 64 2 65 2 56 2 65 85700 AAVX 20120403 1
  • 将 mutate_at 有条件地应用于 R 中数据帧中的特定行

    我在 R 中有一个数据框 如下所示 a b c condition 1 4 2 acap 2 3 1 acap 2 4 3 acap 5 6 8 ncap 5 7 6 ncap 8 7 6 ncap 我正在尝试重新编码条件 ncap 的 a
  • C++:在二叉树中插入节点的指针与指针的指针

    我正在创建一个函数来在二叉树中插入一个元素 首先 我在 Visual Studio 2012 上执行了以下操作 void Insert Nodo root int x if root NULL Nodo n new Nodo n gt va
  • 使用 redux useDispatch 时 useEffect 缺少依赖项

    每当使用反应钩子安装我的组件时 我想获取我的类别useEffect而不是在每次重新渲染时 但我不断收到此警告React Hook useEffect has a missing dependency dispatch 这是我的代码 cons