问题标签 [use-effect]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2252 浏览

reactjs - react hooks(useEffect)无限循环说明

这个问题与之前的问题有关。我写了两个自定义钩子。第一个是useFetchAccounts其工作是获取有关用户帐户的一些数据,如下所示:

这个钩子没什么特别的,只是获取帐户的 ID。

现在我有另一个钩子,useFetchBalancesWithIDs(account_ids, accounts_loaded)它意味着从上一步中获取 id 并在帐户已加载时获取这些帐户的余额。它看起来像这样:

如您所见,如果accounts_loaded为假,它将不会执行提取。我一起使用它们如下:

不幸的是,这会导致无限循环。起作用的是将其更改useFetchBalancesWithIDs为:

它在其中执行 ids 提取。我这样使用它:

运行得很好。所以问题似乎与从 App 组件中提取 ID 有关,这似乎一直在触发useFetchBalanceWithIDs,即使account_ids不改变值。有人可以帮助解释这种行为吗?我可以使用useFetchBalanceWithAccounts,但我想了解为什么useFetchBalanceWithIDs不起作用。谢谢!

0 投票
1 回答
546 浏览

javascript - 对 useEffect 感到困惑

我正在构建我的第一个 Custom React Hook,并且对我认为代码的一个简单方面感到困惑:

我传递给useFetch两个参数:一个 url 和一个headers包含 AWS Cognito 授权密钥的对象,如下所示:(Authorization: eyJraWQiOiJVNW...为简洁起见)

当我这样做时,options对象确实存在于内部附近useFetch但在useEffect构造内部它是空的。然而,url字符串在两种情况下都正确填充。

这对我来说毫无意义。可能有人知道为什么会这样吗?

0 投票
4 回答
2240 浏览

reactjs - 如何使用 useState 更新初始状态对象的特定属性

考虑在获取一些数据后我需要更新状态的代码,我只需要更新初始状态(clientData)的数据部分:

我怎样才能以及是否可以只更新初始状态的“数据”部分而不必传播它(...clientData

0 投票
1 回答
34 浏览

reactjs - 为什么我在使用 websocket 时在 useEffect 中有无限循环?

我现在将 weboscket 添加到应用程序中,我必须在添加新用户时尝试更新活动用户数组,但是当我在结果参数 [activeUsersInGallery] 中输入 useEffect 时,然后将请求发送到 webosocket infitiy。我现在不知道为什么。

0 投票
1 回答
1417 浏览

react-hooks - 为什么我的 useFetch 函数被调用了两次?

我正在尝试使用从 API 端点获取数据的 React Hooks 构建我的第一个函数。代码如下所示。

在我的 React 组件中:

在一个名为requests.js我导入的文件中:

虽然它有效,但每当我刷新浏览器时,都会对端点进行两次调用。为什么会这样,我怎样才能让它只被调用一次?

0 投票
1 回答
528 浏览

reactjs - 如何使用 React hook useEffect 添加事件处理程序取决于状态?

我有一个授权组件,包括另一个组件 - 用户名、密码等字段。我尝试创建反应挂钩 useeffect,我想在“X”keyDown 事件上添加订阅。在这个事件中,我想执行 Authorize() 函数,该函数位于组件主体(不是钩子主体)中,并且取决于授权组件状态。

所以,我发现的唯一解决方案是:

但我认为它不正确,因为这种订阅/取消订阅会在每次用户状态更改时执行。请帮忙。

0 投票
0 回答
293 浏览

reactjs - React:如何让 useEffect reducer 函数与 react-datepicker 一起工作?

useEffect在他们从下拉列表中选择用户选择时间后,我试图让他们向我展示用户选择的时间。我的同事帮助我开始使用钩子,但我完全不知道该怎么做。经过几天的尝试,我必须寻求帮助。

目前,它正确显示了来自数据库的时间,当页面被加载时,但是NaN当用户选择了任何数字时,它给出了......下面正确生成的表的图片(数据库值)。

简而言之:TimeClass是我试图将新时间信息 ( reservations) 放入的下拉选择TimeChanger。从那以后一切都很好,它只是按照我的计划保存到数据库中。

主要的:

时间类:

预留减速器:

0 投票
1 回答
496 浏览

react-hooks - 使用 UseEffect 调用端点

我正在使用 Robin Wieruch 的出色工作来了解如何调用 API 端点。这是他的一个项目:https ://github.com/the-road-to-learn-react/react-hooks-introduction

下图是他的修改版useDataApiHook-example。有了它,我连接了两个按钮,然后给了我 3 种查询端点的方法。我选择在所有情况下都使用相同的端点,但用不同的端点对其进行了测试,它似乎工作正常。

我有几个问题:

  1. 假设我不想在组件加载时调用查询(并且不想在加载时发出 GET 请求)。如何做到这一点?
  2. 想象一下,按钮 1 和 2 触发的事件实际上分别是对不同 API 端点的调用。例如,按钮 1 可以代表一个调用,以查明刚刚输入的特定用户名是否已经存在。按钮 2 可以代表一个呼叫,以查明刚刚输入的电子邮件地址是否已经存在。在这种情况下,确保正确使用newdata填充的常见做法是什么?doFetch

如果问题 2 不清楚,让我换一种说法:在所有情况下,data对象都由useDataApi. 但是,如果第一次调用useDataApi是为了填充一个东西,第二次调用是为了填充其他东西,第三次调用是为了再次填充其他东西,那么处理这种逻辑的最佳方法是什么?

0 投票
1 回答
82 浏览

reactjs - 多次调用 useEffect - React

我只想在更改时在我的useEffect方法中执行代码productType,并且一旦加载页面,我就可以识别 console.log 执行超过 6-7 次,这是我不想要的。

这是我的代码的摘要:

想法是在更改useEffect时执行代码productType,我在下拉列表中更改它,如下所示:

所以我想知道为什么当我加载这个视图/模板时,我的控制台中出现了 6-7-8console.logs之类的null......

0 投票
3 回答
17137 浏览

reactjs - React Hook 延迟了 useEffect 触发?

我试图在我的反应钩子中使用 useEffect() 来更新我的道具改变时的状态。但是有一个延迟,并且只有在我再次单击我的钩子中的一个元素后才会触发 useEffect 。我对使用钩子相当陌生,任何帮助将不胜感激。谢谢