javascript - React Native,我将如何在 useEffect 中调用函数
问题描述
所以基本上这就是我想要做的。我有一个调用 handleAdd 事件的按钮,当该事件触发时我想调用 useEffect 函数。使用效果();调用一个函数,该函数根据输入中的值返回不同的 api 键。但我已经意识到 useEffect 不能那样工作,只能在代码的“顶级”中调用。有什么办法可以解决这个问题吗?请参见下面的示例:
input = "example";
const handleAdd = () => {
//Call useEffect
};
useEffect(() => {
getCoinMarketDataApi.request("example");
}, []);
在此先感谢:) 感谢您提供任何输入,我很难弄清楚如何使用 useEffect 和 async 事件,因此答案可能很明显。
解决方案
听起来您拥有的函数useEffect
实际上应该是传递给<button>
sonClick
处理程序的函数的一部分。
在某些用例中,您确实需要重新触发 auseEffect
以响应按钮单击(例如,我正在处理的项目需要在安装组件时从 Web 服务获取数据,并且如果用户输入更改了默认值) 所以:
useEffect
函数在以下情况下被调用:
- 组件初始安装
- 当依赖项发生变化时
因此,您可以通过以下方式执行您的要求:
- 创建一个状态
useState
- 将状态变量作为依赖项传递给
useEffect
- 在单击事件处理程序中设置该状态变量
推荐阅读
- objective-c - 数据是否来自缓存?
- java - 如何将布局作为函数参数传递
- ios - iOS Visible=false,事件元素在屏幕上可见
- node.js - 如何将apache tomcat服务器配置到oracle数据库
- python - 如何通过组合数据框中的两个系列来添加新系列?
- sugarcrm - 子面板 suitecrm 中的自定义错误消息
- go - x/mobile:在 go 中使用给定的包名 [String] 启动一个 android 应用程序
- javascript - CSS3 固定标题表干扰悬停元素
- css - 具有渐变背景和圆形轮廓的按钮
- excel - 可以合并两个范围吗?- VBA