javascript - React : in mobile browsers button onClick hadler fires multiple times. 桌面版没问题

标签 javascript reactjs mobile browser

我有一个非常简单的 React 页面,嵌入了下载按钮:

<button
  type='button'
  className='button'
  onClick={this._downloadArchive}
  style={{width: '100%'}}
  >
   <div style={styles.archiveButton}>
    <div>Download</div>
    <div>{'archive.zip'}</div>
    </div>
</button>

以及相应的处理程序:

_downloadArchive = () => {
  let filename = 'archive.zip';
  let url = '/beta/archive32?filename=' + filename + screenDetails;
  window.open(url)
};

在桌面浏览器中,它可以正常工作,但在所有移动浏览器中,处理程序被调用多次(3-4,取决于设备和浏览器),调用之间有 100-300 毫秒的延迟 - 我可以在后端日志中看到它。 同时,移动浏览器仅下载该文件一次。 如何防止此类行为?

尝试使用 onTouchEnd 事件(检测移动客户端) - 结果相同

最佳答案

你能用 JSON.parse 将文本响应解析为 json

关于javascript - React : in mobile browsers button onClick hadler fires multiple times. 桌面版没问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58898238/

相关文章:

android - 用于管理订阅的 Amazon Appstore 深层链接

javascript - 如何将文本放在图像上

javascript - 如何自定义 React-Konva 旋转处理程序?

javascript - Array.push 修改现有元素

javascript - 从 React Context 命名的导入不能按预期工作

html - React Native : 'top' property behaving as expected, 但 'bottom' 不是

java - 无法将按键发送到输入元素

javascript - 在 Android 浏览器中捕获浏览器关闭事件

javascript - Onclick 不会在渲染点绑定(bind)变量的值

javascript - 覆盖 console.log|错误,winston 不再工作