Я использую useState, чтобы сохранить значение ввода, и мне нужно кое-что сделать при нажатии определенной клавиши, поэтому я пытаюсь использовать onKeyPress, но метод, используемый для обновления состояние не работает, любая помощь не требуется :)

Вот как выглядит код:

...
function handleKeyPress(event) {
  // This code looks like is not running, why?
  setMessageInput('asdasdasdasd')
}
...
<TextInput onKeyPress={handleKeyPress} />
...
0
Kaluã Bentes 11 Дек 2019 в 01:52

3 ответа

Похоже, вам нужно привязать функцию к обработчику события onKeyPress. Вы можете легко сделать это, используя функцию стрелки .

function handleKeyPress(event) {
  setMessageInput('asdasdasdasd')
}
...
<TextInput onKeyPress={(e) => handleKeyPress(e)} />
0
Jurrian 11 Дек 2019 в 01:57

Проблема с вашим - это оператор javscript, где функции в javascript требуют явной привязки this в компонентах класса, а в функциональных компонентах вы можете добиться того же, используя функции жирных стрелок.

Поэтому попробуйте заменить код на приведенный ниже

const handleKeyPress = (event) => {
  setMessageInput('asdasdasdasd')
}

... 

<TextInput onKeyPress={(e) => handleKeyPress(e)} />

Надеюсь, это поможет. не стесняйтесь сомневаться

0
Gaurav Roy 11 Дек 2019 в 08:20

Я решил эту проблему, проблема с асинхронным выполнением другого обработчика

0
Kaluã Bentes 12 Дек 2019 в 05:51