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

时间:2018-07-21 05:09:04

标签: reactjs events material-ui clojurescript re-frame

我正在使用cljs-react-material-ui中的re-frame

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

我是否需要明确取消此事件的弹跳?我希望UI框架能够几乎完全相同地对待点击和回车。

1 个答案:

答案 0 :(得分:1)

就这么简单

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

请参见React的event documentation

确定在按钮上用户click输入(或keydown空格)后是否是发送keyup事件的浏览器时,我将更新此答案。有趣的是,keydown后的Meta-Enter不会触发click事件。我确定这都是在某个地方写下的,只是我还没有找到参考!

在material-ui中

编辑 ... aa和here's the description of the bug