当前位置: 首页 > 面试题库 >

在React中按下(Ctrl + Enter)时调用函数

云星波
2023-03-14
问题内容

我正在制作一个应用程序,我想showMessage在用户按下Ctrl+
时触发一个功能(在本例中为)Enter。我将如何做到这一点,最好不要使用jQuery?

    import React from "react"

    const App = React.createClass({
      showMessage () {
        console.log('hit');
      },
      render () {
        return (
          <div>
            <button onClick={this.showMessage}>Hit</button>
          </div>
        );
      }
    });


    module.exports = App;

问题答案:
  1. 添加事件监听器: document.addEventListener('keydown',this.keydownHandler)

  2. 然后在处理程序中检查 e.keyCode===13 && e.ctrlKey

  3. 不要忘记删除事件监听器 componentWillUnmount

    const App = React.createClass({
      showMessage () {
        alert('SOME MESSAGE');
      },
      keydownHandler(e){
        if(e.keyCode===13 && e.ctrlKey) this.showMessage()
      },
      componentDidMount(){
        document.addEventListener('keydown',this.keydownHandler);
      },
      componentWillUnmount(){
        document.removeEventListener('keydown',this.keydownHandler);
      },
      render () {
        return (
          <div>
            <h1>Press Ctrl+Enter</h1>
            <button onClick={this.showMessage}>Hit</button>
          </div>`
        );
      }
    });
    export default App;


 类似资料:
  • 我已经做了我的代码。但是当用户输入时,它正在调用服务器端的2 button事件。我只想调用一个事件。 我有三个ASP.NET按钮, 注 我已经为btnSaveFile定义了click函数,下面是代码 下面的代码用于调用上面的函数。 键控功能工作正常。但同时,当我按下enter键时,它也在调用服务器端代码。它不应调用。它应该在服务器端调用 怀疑 我总共有3个服务器端按钮,但它只调用了2个为什么?(只

  • 问题内容: 我是Bootstrap的新手,并且一直遇到这个问题。我有一个输入字段,只要输入一个数字,就会调用from函数,但是我希望在输入完整个数字后按“ Enter”键才能调用它。验证功能存在相同的问题-调用时间过早。 问题答案: 根据React Doc的说法,您可以听键盘事件,例如or ,not 。 更新:使用React.Component 这是使用React.Component的代码,它执行

  • 问题内容: 我想在用户按下键盘上的Enter键时传递值。在事件中,我得到的价值,但在如何获得这个值是按键? 码: 问题答案: 使用事件,并在其中检查用户按下的键的键码。密钥的密钥代码为13,检查代码并在其中放置逻辑。 检查以下示例: 注意: 用Material-Ui 替换元素,并定义其他属性。

  • 问题内容: 我有一个显示值的文本字段。我想要的是,当用户在该文本字段中输入新值并按Enter时,将触发ajax函数以执行分页操作。我有一个像这样的文本字段: 当用户编写任何新值并按Enter时,我希望触发以下ajax函数: 我尝试使用keypress事件进行检测,但这不能解决问题。谁能指导我? 问题答案: 在jsfiddle上。

  • 我正在使用套接字为java创建一个聊天。我的问题是,在用户的框架上,当我第一次按enter时,插入符号会转到下一行,之后我必须按backspace,否则会发送一个空白句子和我写的句子。我使用KeyListener来按enter键,并向keyPressed函数输入以下代码。 事情是,这只工作后,我第一次使用聊天。例如,我发送了一些东西,如果我按Enter键,插入符号就会转到下一行。然后,如果我写了什

  • 我使用的是react属性而不是tag。所以我需要做的是在点击链接时调用一个函数。我需要遵循什么方法来实现这一点。我可以使用下面的函数吗。 我必须触发函数,这将保存数据到localstore,然后重定向用户到组件。 谢谢。