问题标签 [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 投票
1 回答
70 浏览

reactjs - 尝试在反应js中进行计数器时超过最大调用堆栈大小

尝试在 React js 中进行计数器时超出最大调用堆栈大小。我正在使用功能组件来创建计数器。这将从0开始,每次增加10,直到达到最大限制。 这是我的代码

0 投票
1 回答
5449 浏览

javascript - useEffect React Hook 使用异步等待多次渲染(提交按钮)

我试图基本上禁用提交按钮,所以我的 api 调用只被触发一次/在操作已经进行时有人不能再次点击提交。

我将 runOnSubmit 函数转换为异步函数并直接调用它。我已经基于许多其他解决方案,基本上当我这样做和调试时,我可以说 isSubmitting 仍然设置为 true 并且钩子被多次调用/ submitAsync 函数被调用两次。

基本上, setSubmitting 会被调用,但实际上在再次刷新之前不会做任何事情。我希望它只被调用一次。我不知道为什么 submitAsync 甚至会运行多次,因为依赖项(错误)没有改变。如果他们正在改变,那么 noErrors 第二次会有所不同,它甚至不会击中那个块。

更新-添加更多信息:

由于此函数将 Submitting 设置为 true,它应该重新运行 useEffect 函数,因为 isSubmitting 在依赖数组中。

按钮调用提交并禁用它:

我的按钮组件:

第二次编辑-在 console.logs 中添加:

运行时:

这里没有多大意义的问题是“提交后的控制台”在“函数后”之前运行。就好像异步等待没有做任何事情。

0 投票
1 回答
129 浏览

reactjs - React.useEffect 缺少依赖项 - 状态

我收到错误“React Hook React.useEffect 缺少依赖项:'openPosts'”,其中 openPosts 是 Hook 中的状态。

我已经阅读过,但我不明白为什么我会收到这个错误。我可以忽略它吗?

我本质上希望通过更改来过滤状态,props.userId并认为这将是一种干净的方式。我还可以创建更多状态来跟踪任何变化,props.userId但如果上述方法可行,我更喜欢它。

0 投票
1 回答
7875 浏览

reactjs - 正确/错误忽略一些 React useEffect 依赖警告?

这是我编写的一些可以正常工作的示例代码:

我在控制台中收到此警告:

React Hook useEffect 缺少依赖项:“customer.roles”和“rolesData.roles”。要么包含它们,要么删除依赖数组 react-hooks/exhaustive-deps

问题是,代码现在可以正常工作,并且在某些情况下,当我按照指示添加此类依赖项时,我最终会遇到无限循环或其他问题。

当您遇到类似情况时,如果您就如何解决此问题提供任何建议,我将不胜感激。

0 投票
1 回答
189 浏览

reactjs - How to call separate code for every single prop in useEffect

I would like to make useEffect method, which is calling when any prop is changed but not all the code, just a single one dedicated for this props

I imagine something like that ... In this moment all the code is called whed one, two or three is changed.

0 投票
1 回答
1247 浏览

javascript - React useEffect 附加脚本未触发

我正在尝试加载一个脚本,该脚本一旦触发就会生成一个 iframe 和一个天气小部件。我可以正确附加脚本,但它不会被调用并且不会生成 iframe

我试过直接在渲染中添加脚本,它会短暂加载 iframe 然后切换回脚本标签

0 投票
0 回答
40 浏览

reactjs - 如果我想监听元素的 boundingClientRect() 变化,应该在 useEffect 的依赖数组中放入什么?

每当我的布局中的某些内容发生变化时,我试图获得一个position:absolute指向重新定位的箭头,如果这会影响到的位置(例如侧边栏打开或关闭或窗口被调整大小)。 无论何时发生变化的东西。不幸的是,将etc 添加到依赖项数组中不起作用。在这种情况下,它只会在状态改变时更新一次箭头,而不是平滑地跟随目标的动画。targetelementtargetelement
boundingClientrecttargetelementelemRect.left

我也尝试过ResizeObserver,它不会在目标元素移动时触发,而只会在它调整大小时触发。

省略依赖数组(如示例中所示)实现了我想要发生的事情,但它完全炸毁了计算机。我还经常收到“超出最大更新深度错误”,这是有道理的,因为箭头基本上一直在更新状态。

使用useLayoutEffect也不行。

我有一个我需要的小例子:

https://codesandbox.io/embed/suspicious-haze-4jdi1

我很乐意就如何正确解决这个问题提出建议。

提前致谢!

0 投票
3 回答
51572 浏览

reactjs - 如何在 useEffect Hook 中重新渲染组件

好的,所以:

每次使用 props.lang 更改时,我应该在 useEffect 中做什么来重新渲染组件?

0 投票
4 回答
74047 浏览

reactjs - 如何在useEffect钩子反应中停止内存泄漏

我正在使用效果挂钩从服务器获取数据,这些数据被传递到反应表,在那里我使用相同的 api 调用从服务器加载下一组数据。当应用程序被加载时,我收到如下警告

效果挂钩:

反应表页面:

设置过滤功能:

有谁知道如何清理反应中的钩子

0 投票
1 回答
686 浏览

reactjs - useEffect Hook 不会触发包含在其中的函数

我的 reactjs 应用程序中有以下组件:

如您所见,我正在使用 React Hook useEffect 像这样 ::-

问题是如果我在里面添加一个console.log useEffect,我会在控制台中看到console.log。但是该功能getMoviesDiscover永远不会执行。getMoviesDiscover 函数位于外部文件中,如下所示:

为什么我的 useEffect Hook 没有调用该函数?