JastaFly
@JastaFly

Обработчик события на клавишу Enter в React?

Доброго всем времени суток! Нужно было повесить обработчик события на нажатие клавиши Enter. Походу дела я столкнулся с проблемой: элемент на который я вешал обработчик события на момент создания ещё не существовует. По итого всё было сделано через setTimeout:
function Typing_message() {
    let messageField = React.createRef();
    setTimeout(function () {
        messageField.current.addEventListener('keydown', function (keyPress) {
            if (keyPress.keyCode == 13) {
                console.log('Enter press');
            }
        })
    }, 1000);
    return (
        <div className={style.typing}>
            <div className={style.typing__icon}>
               
            </div>
            <textarea ref={messageField} placeholder="Type your message..." name="" className={style.typing__field}></textarea>
            <div className={style.typing__icon}>
               
            </div>
            <div className={style.typing__icon}>
    
            </div>
        </div>
    );
}

Но это какая-то игра хреном по балалайке. Есть ли како-то более изящное решение?!??
  • Вопрос задан
  • 7322 просмотра
Решения вопроса 1
@Che603000
c 2011 javascript
Зачем Вы сами себе усложняете жизнь ? Вот типовое решение
const onKeyDown = e =>{
// обработайте нажатие клавиши. 
}
return (
    <textarea onKeyDown={onKeyDown} .../>
)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы