下面是我的一个用例,我真的希望在函数中调用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调用将进入连续循环!
我想不出任何其他的方法-有人能给我一些启示或帮助我在正确的方向上做什么吗?
1条答案
按热度按时间oyt4ldly1#
你需要一个自定义钩子在一个函数中调用
useEffect
。要做到这一点,只需在函数名前加上前缀use
。例如,useFunction
。然后你就可以检查了。请检查关于自定义钩子的文档。