Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
React native 在React Native';中,useState钩子在onKeyPress处理程序内不工作;文本输入_React Native - Fatal编程技术网

React native 在React Native';中,useState钩子在onKeyPress处理程序内不工作;文本输入

React native 在React Native';中,useState钩子在onKeyPress处理程序内不工作;文本输入,react-native,React Native,我正在使用useState来保留输入值,当点击特定键时,我需要制作一些东西,因此我尝试使用onKeyPress,但用于更新状态的方法不起作用,请提供任何帮助:) 下面是代码的外观: 。。。 功能手柄按键(事件){ //这段代码看起来好像没有运行,为什么? setMessageInput('asdasdasd') } ... ... 看起来您需要将函数绑定到onKeyPress事件处理程序。您可以通过使用 功能手柄按键(事件){ setMessageInput('asdasdasd') } ...

我正在使用
useState
来保留输入值,当点击特定键时,我需要制作一些东西,因此我尝试使用
onKeyPress
,但用于更新状态的方法不起作用,请提供任何帮助:)

下面是代码的外观:

。。。
功能手柄按键(事件){
//这段代码看起来好像没有运行,为什么?
setMessageInput('asdasdasd')
}
...
...

看起来您需要将函数绑定到onKeyPress事件处理程序。您可以通过使用

功能手柄按键(事件){
setMessageInput('asdasdasd')
}
...
手动按键(e)}/>

您的问题在于javscript语句,javascript中的函数需要显式绑定类内组件,而在函数组件中,您可以通过使用胖箭头函数实现相同的绑定

所以试着用下面的代码替换代码

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

... 

<TextInput onKeyPress={(e) => handleKeyPress(e)} />
const handleKeyPress=(事件)=>{
setMessageInput('asdasdasd')
}
... 
手动按键(e)}/>

希望能有帮助。不要怀疑

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

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

... 

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