Проблема здесь в том, что внутри render
вы передаете string
в качестве параметра handleKey
функции:
onKeyDown={(event: any) => this.handleKey(event.key)}
Но, как в componentWillMount
, так и componentWillUnmount
вы передаете фактическое событие KeyboardEvent
для функции handleKey
, которое вызывает эту проблему. Вы можете исправить это, обновив их следующим образом:
componentWillMount() {
document.addEventListener('keyPress', (e: any) => this.handleKey(e.key), false)
}
componentWillUnmount() {
document.removeEventListener('keyPress', (e: any) => this.handleKey(e.key), false)
}
Вы также можете обновить функцию handleKey()
, чтобы было ясно, что вы получаете key
как параметр этой функции, а не фактическое событие.
handleKey = (key: string) => {
console.log(key)
}