首页 > 解决方案 > React Native,我将如何在 useEffect 中调用函数

问题描述

所以基本上这就是我想要做的。我有一个调用 handleAdd 事件的按钮,当该事件触发时我想调用 useEffect 函数。使用效果();调用一个函数,该函数根据输入中的值返回不同的 api 键。但我已经意识到 useEffect 不能那样工作,只能在代码的“顶级”中调用。有什么办法可以解决这个问题吗?请参见下面的示例:

 input = "example";  

  const handleAdd = () => {
    //Call useEffect
  };

  useEffect(() => {
    getCoinMarketDataApi.request("example");
  }, []);

在此先感谢:) 感谢您提供任何输入,我很难弄清楚如何使用 useEffect 和 async 事件,因此答案可能很明显。

标签: javascriptreact-native

解决方案


听起来您拥有的函数useEffect实际上应该是传递给<button>sonClick处理程序的函数的一部分。

在某些用例中,您确实需要重新触发 auseEffect以响应按钮单击(例如,我正在处理的项目需要在安装组件时从 Web 服务获取数据,并且如果用户输入更改了默认值) 所以:

useEffect函数在以下情况下被调用:

  • 组件初始安装
  • 当依赖项发生变化时

因此,您可以通过以下方式执行您的要求:

  • 创建一个状态useState
  • 将状态变量作为依赖项传递给useEffect
  • 在单击事件处理程序中设置该状态变量

推荐阅读