首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ReactJS |让onClick和onFocus共调用同一个方法一次

问ReactJS |让onClick和onFocus共调用同一个方法一次
EN

Stack Overflow用户
提问于 2020-03-03 23:46:31
回答 1查看 91关注 0票数 0

我有一个使用onClick和onFocus的组件。这两个事件调用从API加载数据的相同函数。

当用户使用the键浏览页面上的元素并访问此组件的子API时,onFocus将运行并从textarea加载数据。

但是,当用户单击组件的textarea子组件时,onClick和onFocus事件都会尝试从该应用程序接口加载数据。我想防止这两个事件触发一个函数两次。

如果可能的话,我不想把事件放在文本区本身。

代码语言:javascript
复制
  function DataRow(props) {

      function focused(e){
          props.loadDataFromAPI(); /* This will get ran twice if clicked on tr element's textarea */
      }

      return <tr onFocus={focused} onClick={focused} ><textarea></textarea></tr>;

  }

正如您所看到的,我希望在用户单击tr以及在文本区域上单击/焦点时调用它。我只是不想在点击文本区域时出现重复的调用!

EN

回答 1

Stack Overflow用户

发布于 2020-03-04 00:07:56

也许你可以实现一个debounce系统来避免这种行为。通过这种方式,您不仅可以避免这种双重事件触发,而且可以防止用户在开始重复单击该按钮时向您发送垃圾邮件和轮询请求。

有很多关于去抖动的答案,也许你可以看看lodash去反跳,或者谷歌的特定反应系统,比如去反跳钩子。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60510864

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档