javascript - 与 React 一起使用时如何检测 keyPress 上的 'Enter' 键

标签 javascript reactjs keypress onkeypress

我正在使用 ReactJs 开发我的应用程序。我正在尝试通过处理 onKeyPress 事件在按下 Enter 时提交输入文本。它检测其他输入,但不检测输入。我尝试了不同的方法 - event.keyevent.charCodeevent.keyCodeevent.which。 .. 似乎没有任何效果。

React.createElement("input", {tabIndex: "1", onKeyPress: this.handleKeyPress, onChange: this.handleChange, 
                           placeholder: "ex: 1,10,15"}), 

handleChange: function (event) {
        this.setState({userInputBuckets: event.target.value});
    },
handleKeyPress: function (event) {
        if (event.charCode == 13) {
            event.preventDefault();
            this.props.table.handleSubtotalBy(this.props.columnDef, this.state.userInputBuckets);
        }
    },

我还尝试使用 onKewDown 处理,它检测到正确的键,但它不执行 if block ,即使它评估 event.keyCode == 13 为是的。

最佳答案

e.stopPropagataionhandleSubtotalBy 移动到 handleKeyPress:

handleKeyPress(event) {
  if (event.charCode == 13) {
    event.preventDefault();
    event.stopPropagation();
    this.props.table.handleSubtotalBy(this.props.columnDef, this.state.userInputBuckets);
  }
}


handleSubtotalBy(columnDef, partitions) { 
  const subtotalBy = this.state.subtotalBy || [];
  // ...
}

关于javascript - 与 React 一起使用时如何检测 keyPress 上的 'Enter' 键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44958938/

相关文章:

javascript - Three.js 无后台导入gltf

javascript - new Date() 始终将 dd/mm/yyyy 读取为 mm/dd/yyyy(月份第一),因此日期和月份值混合,导致 NaN/Error

c++ - Qt keyPressEvent 错误

javascript - 使用移动网络应用程序进行网络抓取?

javascript - Mocha + typescript : Cannot use import statement outside a module

reactjs - 迁移到 material-ui v4,我收到 Modal 组件的警告

reactjs - Material-UI : Rating Component, 根据值改变颜色

javascript - 开始使用 Enzyme 和 Jest 测试 React 组件

.net - VB.NET中捕获功能键F1..F12

flash - 按键时如何播放声音