首页 > 解决方案 > 解决 onClick 事件在 material-ui 中的“Enter Key”按下时被触发两次(错误)

问题描述

我正在使用cljs-react-material-uifrom re-frame

当我单击 aflat-button时,它会按预期触发:on-click事件。但是,当我按 Tab 键聚焦按钮然后按返回时,似乎触发了两次事件。这让我的应用程序感到困惑,因为它的有限状态机已经进入下一个状态,在这种状态下(重复的)事件没有意义。

我是否需要明确地消除此事件?我本来希望 UI 框架能够几乎相同地处理单击和返回键。

标签: reactjseventsmaterial-uiclojurescriptre-frame

解决方案


这很简单

:on-click (fn [e] (.preventDefault e)
                  (re-frame.core/dispatch [::events/eventname]))

请参阅 React 的事件文档

当我确定是否是浏览器在用户按 Enter 键(或按空格键)click后发送事件时,我将更新此答案。有趣的是,ing Meta-Enter 之后不会触发该事件。我确定这一切都写在某个地方,我只是还没有找到参考!keydownkeyupkeydownclick

编辑...aaand这是material-ui中错误的描述。


推荐阅读