无法在 React 中捕获触摸板发布事件

Unable to capture touchpad release event in React

提问人:János 提问时间:11/14/2023 最后编辑:jonrsharpeJános 更新时间:11/14/2023 访问量:37

问:

我正在开发一个 React 应用程序,当用户在 macOS 上释放他们的触摸板(触控板)时,我需要执行某些操作。我尝试过使用 mouseup 事件,但它似乎在触摸板版本上没有一致触发。

我想知道是否有更合适的事件来处理触摸板发布,或者是否有我需要考虑触摸板交互的特定注意事项。

这是我的 React 组件的简化版本:

import React from 'react';

const MyComponent = () => {
  const handleTouchpadRelease = () => {
    // Code to be executed when the touchpad is released
    console.log('Touchpad released!');
  };

  return (
    <div onTouchEnd={handleTouchpadRelease}>
      {/* My component content */}
    </div>
  );
};

export default MyComponent;

尽管使用了 onTouchEnd,但在释放触摸板时似乎没有一致地调用该函数。

ReactJS 鼠标事件

评论


答:

0赞 mandy8055 11/14/2023 #1

您应该尝试收听事件以使用触控板pointer*

import React from 'react';

const MyComponent = () => {
  const handlePointerDown = () => {
    // Your code for trackpad withold
  };

  const handlePointerUp = () => {
    // Your code for trackpad release
  };

  return (
    <div onPointerDown={handlePointerDown}
      onPointerUp={handlePointerUp}
    >
      {/* My component content */}
    </div>
  );
};

export default MyComponent;

代码演示