reactjs - 按下回车后如何存储和操作文本输入?
问题描述
我试图在按 Enter 时存储文本输入,这对我不起作用。当我按下回车键时,甚至没有警报响起。
这是我当前的简化代码:
const ToDo = () => {
const saveValueFunction = (e: any) => {
console.debug(e.keyCode)
if (e.keyCode === 13) {
AsyncStorage.setItem('any_key_here', e)
alert('Data Saved')
}
}
const [value, onChangeText] = React.useState('')
return (
<TextInput
placeholder="Add a Task"
placeholderTextColor="aqua"
color="aqua"
backgroundColor="#262626"
style={styles.textInput}
onChange={(e) => onChangeText(e.target.value)}
value={value}
onKeyDown={(e) => saveValueFunction(e)}
/>
)
}
解决方案
您可以使用onKeyPress
which 在按下任何键时调用。使用 Native 事件调用它,该事件具有key
保存诸如或用户键入的字符之类的Enter
值的属性。Backspace
因此,您可以将其与Enter
检测用户按下的 Enter 进行比较。
const [value, setValue] = React.useState('');
const handleKeyPress = e => {
if (e.key === 'Enter') {
AsyncStorage.setItem('any_key_here', value);
setValue('');
showAlert();
alert(`Task saved: ${value}`);
}
};
<TextInput
value={value}
onChangeText={text => setValue(text)}
onKeyPress={e => handleKeyPress(e)}
placeholder="Add a Task"
placeholderTextColor="aqua"
color="aqua"
backgroundColor="pink"
style={styles.textInput}
/>
代码游乐场:世博会
推荐阅读
- python - 按 ID 和周数计算单数列中的滚动变化
- android - 如何在 DatePickerDialog.OnDateSetListener 上设置最小和最大日期
- shell - 在脚本 sh 中创建文本文件
- java - 如何在 SQL 中为 int 变量分配一个一对多的电话号码
- jquery - Adobe CSDK 编辑器不显示贴纸、覆盖和框架,出现错误
- c# - 让这个简单的 c# 图片搜索代码更快?
- powershell - 打开和关闭 RDP 窗口
- reactjs - 在页面之间传递值
- ajax - 基本 URL 在 Grails 生产模式下不起作用
- node.js - 未捕获的异常和未处理的承诺拒绝