axios 我可以不调用React中函数内部的“useEffect”吗?

5fjcxozz  于 2022-12-29  发布在  iOS
关注(0)|答案(1)|浏览(182)

下面是我的一个用例,我真的希望在函数中调用useEffect,但我无法做到。
我有一个下拉列表,它从页面加载开始时调用的API调用中获取数据。基于从该下拉列表中的选择,我为从下拉列表中获取的选定值的ID执行setState。然后,我有另一个下拉列表,它是名为React QueryBuilder的库的一部分,我需要为该库传递一个onChange函数。在该onChange函数中,我调用useEffect,然后传递从前面提到的setState获得的ID-当我这样做时,我收到一条错误消息,告诉我不能在函数内调用useEffect,但我需要在这里调用它,因为我需要进行API调用并将ID传递给API。
如果我有函数名在所有小的情况下,我得到下面的错误:

  • 在既不是React函数组件也不是自定义React Hook的函数“functionname”中调用了React Hook“useEffect”*

如果我将函数重命名为“FunctionName”,我会得到以下错误:*
无效的挂接调用。只能在函数组件的主体内调用挂接

如果我不使用useEffect,该API调用将进入连续循环!

我想不出任何其他的方法-有人能给我一些启示或帮助我在正确的方向上做什么吗?

oyt4ldly

oyt4ldly1#

你需要一个自定义钩子在一个函数中调用useEffect。要做到这一点,只需在函数名前加上前缀use。例如,useFunction。然后你就可以检查了。请检查关于自定义钩子的文档。

相关问题