useState钩子在React Native的TextInput中的onKeyPress处理程序中不起作用

时间:2019-12-10 22:52:29

标签: react-native

我正在使用useState来保留输入的值,并且在点击特定键时需要做一些事情,因此我尝试使用onKeyPress,但是使用的方法更新状态无法正常工作,请帮助:)

代码如下:

...
function handleKeyPress(event) {
  // This code looks like is not running, why?
  setMessageInput('asdasdasdasd')
}
...
<TextInput onKeyPress={handleKeyPress} />
...

3 个答案:

答案 0 :(得分:0)

您似乎需要将函数绑定到onKeyPress事件处理程序。您可以使用arrow function轻松完成此操作。

function handleKeyPress(event) {
  setMessageInput('asdasdasdasd')
}
...
<TextInput onKeyPress={(e) => handleKeyPress(e)} />

答案 1 :(得分:0)

您的问题是一个javscript语句,其中javascript中的函数需要在类组件中对此进行显式绑定,而在功能组件中,您可以使用胖箭头函数来实现相同功能。

因此请尝试使用以下代码替换

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

... 

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

希望有帮助。毫无疑问

答案 2 :(得分:0)

我解决了这个问题,这是另一个处理程序异步执行的问题