如何使 ReactJS 按钮看起来像按下 keyPress?

How do I make ReactJS button look like pressed on keyPress?

我用 ReactJS 创建了一个 Drum Machine,但我找不到让按钮在按下相应键时看起来像被点击的方法。我在网站上发现了以下问题,但我无法让 refs 使用我的代码,我也不知道为什么:

我还读到现在不建议反对字符串引用,所以我真的不知道如何处理这个问题。

这是我应用程序的 link:https://codesandbox.io/s/github/AldanaBRZ/drum-machine

虽然不鼓励使用字符串引用。您仍然可以使用 React.createRef

来使用 refs

参考:https://reactjs.org/docs/refs-and-the-dom.html

你甚至不必使用 refs,你可以给它们所有唯一的 ID,因为它们无论如何都是唯一的,然后每当按下一个键时,你可以检查做一个 if q is pressed, add pressed class to the q button

在 JS 中的 HTML 元素上添加和删除 类 可以通过以下方式实现:

您可以使用 element.classList.add("pressed") 来实现。和 element.classList.remove("pressed")

参考:https://developer.mozilla.org/en-US/docs/Web/API/Element/classList

您可以使用样式将按钮显示为 pressed/unpressed,并从状态管理 pressed/unpressed 事件。 请参考下面的link。新拟态是 UI 几个月的趋势。

https://css-tricks.com/neumorphism-and-css/