0
ドキュメント全体のキープレスイベントを処理した後、Reactコンポーネント内で関数を呼び出す際に問題が発生しました。方向キーを押すたびに移動機能を呼びたいのですが、機能ではないというエラーが表示されます。ドキュメント全体のキープレス(リアクション)後のコンポーネント関数の呼び出し
これはバインディングと関係があります。なぜなら、handleKeyPressメソッド内に "this"を印刷すると、Reactコンポーネントではなくドキュメントが得られるからです。この方法で使用できるようにコンポーネントを正しくバインドするにはどうすればよいですか?
componentDidMount() {
document.addEventListener("keydown", this.handleKeyPress, false);
}
handleKeyPress(e) {
// check if pressed key was a directional key...
var directionalKey = KEYCODES.indexOf(e.keyCode) == -1 ? false : true;
// if so, move!
if (directionalKey) {
this.move(e.keyCode)
}
// but wait, this.move is not a function?
console.log(this);
}
move(direction) {
// do something...
}
ありがとうございます!