Я работаю над функцией входа в систему прямо сейчас. Я поместил свою функцию enterKey на вход, и моя цель — вызвать функцию входа в систему, когда пользователь нажимает клавишу ввода. Он отлично работает, если в области ввода ничего нет, однако я обнаружил, что если у меня есть несколько символов в области ввода текста, функция будет вызываться несколько раз и выдавать несколько сообщений об ошибках. Например, если у меня есть N символов на входе, я получу (N+1) сообщений об ошибках после нажатия клавиши ввода. Вот мой код:
enterKeyPress() {
window.addEventListener("keypress", e => {
if (e.keyCode === 13) {
console.log('enter key pressed!'); // I will receive this msg (N+1) times when there're N characters in the input text area
e.preventDefault();
this.loginUser(); // this is the login function I want to call after press enter key, but just once per press
}
});
}
render() {
return(
<Input
type="password"
placeholder="Password"
onChange={e =>
this.setState({ password: e.target.value })
}
onKeyPress={this.enterKeyPress()}
/>
);
}
Кто-нибудь может мне с этим помочь?