window keypress事件监听器调用函数

时间:2018-03-15 20:28:38

标签: reactjs

import React, { Component } from 'react';
import './App.css';
import Manoeuvre from '../Manoeuvre/Manoeuvre';
import Box from '../Box/Box';

class App extends Component {
  constructor(){
    super();
    this.state = {
      top: 0,
      right: 0,
      bottom : 0,
      left: 0

    }

  }


  doit = () => {
    console.log('this')
  }

  render() {

      window.addEventListener('keypress', function(e){
        this.doit()
      });



    return (

      <div className="all">
        <Manoeuvre />
        <Box />
      </div>
    )
  }
}

export default App;

您好,我正试着从我的eventlistener按键调用函数doit,但无法知道如何操作,任何人都可以提供帮助吗? :)我从现在开始就坚持这个

我得到了errot typerror:doit不是函数

1 个答案:

答案 0 :(得分:0)

在您的匿名事件回调的上下文中,

this是回调。您需要bind回调或使用箭头功能。

另外:

  • 不要将window.addEventListener放入render函数中 - 这应该放在componentDidMount中(并且在componentWillUnmount - 取消隐藏< / em>(是一个单词?)。

  • 为什么不只是window.addEventListener(this.doit)? (不必担心绑定,这里)