【问题标题】:Too many re-renders with useState and useEffect使用 useState 和 useEffect 重新渲染的次数过多
【发布时间】:2020-11-01 14:38:19
【问题描述】:

我的代码一直存在问题,我的 getComponent 函数进入了无限的重新渲染循环。我很确定问题出在我使用 setComponent 上,并且每次调用它都会渲染。我尝试使用 useCallback 但这没有用。这段代码背后的意图是遍历一个数组,渲染某些组件并根据其中的条目传递道具。我是 React 的新手,所以我确信有一个我找不到的简单解决方案。无论如何,如果您认为可以改进,我将非常感谢您对此或代码的其他部分的帮助。

谢谢!

Codesandbox - axios 调用应该在底部获取问题数组。

【问题讨论】:

  • 在您的帖子中直接提供您的违规代码。
  • 我建议你阅读这篇文章:medium.com/@andrewmyint/…。您的问题几乎与那里描述的完全一样。我注意到您在getQuestions() 中调用setQuestions(),我怀疑这是您问题的根源。

标签: javascript reactjs use-effect


【解决方案1】:

不需要状态“组件”。理想情况下,您应该从 switch 语句中返回一个组件。这是修改后的codesandbox

请注意 -

  • 我已删除“组件”和“设置组件”
  • 在 switch 语句中返回了相关组件
  • 清理了 return 语句中使用的 map 函数。

【讨论】:

  • 谢谢,我曾经遇到过这个问题,但我正在修复其他问题,并认为它导致了一个错误,新手错误。感谢您的帮助。
猜你喜欢
  • 2022-06-18
  • 2023-03-26
  • 2020-04-23
  • 2020-04-01
  • 1970-01-01
  • 2020-08-15
  • 1970-01-01
  • 2021-11-26
  • 1970-01-01
相关资源
最近更新 更多