React native 如何在React Native中禁用TextInput中的退格键?
我使用的是TextInput,我希望TextInput中的第一个符号是常量。因此,如果文本的长度是一个符号,我可以忽略backspaces,而onChangeText事件可以忽略。 以下代码不起作用,仍然会发生onChangeText事件。请问,有什么解决办法吗React native 如何在React Native中禁用TextInput中的退格键?,react-native,onkeypress,backspace,react-native-textinput,React Native,Onkeypress,Backspace,React Native Textinput,我使用的是TextInput,我希望TextInput中的第一个符号是常量。因此,如果文本的长度是一个符号,我可以忽略backspaces,而onChangeText事件可以忽略。 以下代码不起作用,仍然会发生onChangeText事件。请问,有什么解决办法吗 <Input onChangeText = { (text) => onTextChange(text) } onKeyPress = { (e) => { if(e.nativeEvent.key ==
<Input
onChangeText = { (text) => onTextChange(text) }
onKeyPress = { (e) => {
if(e.nativeEvent.key === 'Backspace') {
e.preventDefault();
e.stopPropagation();
}
} }
/>
onTextChange(text)}
onKeyPress={(e)=>{
如果(e.nativeEvent.key=='Backspace'){
e、 预防默认值();
e、 停止传播();
}
} }
/>
您能试试这个吗:
<TextInput
onKeyPress={({ nativeEvent }) => {
if(nativeEvent.key === 'Backspace'){
//It was a backspace
}
}}
/>
{
如果(nativeEvent.key=='Backspace'){
//这是一个倒退
}
}}
/>
我想你只是忘记了在nativeEvent
之后的.key
,你能试试这个吗:
<TextInput
onKeyPress={({ nativeEvent }) => {
if(nativeEvent.key === 'Backspace'){
//It was a backspace
}
}}
/>
{
如果(nativeEvent.key=='Backspace'){
//这是一个倒退
}
}}
/>
我想您只是忘记了在
nativeEvent
之后的.key
,我想您可以尝试为文本输入设置一个锁,并将其传递给文本输入的可编辑属性。当触发onKeyPress时,在键为backspace时锁定文本输入,否则释放锁定。例如:
const [inputLock, setInputLock] = useState(false);
.......
<TextInput
onKeyPress={({ nativeEvent }) => {
if (nativeEvent.key === "Backspace") {
setInputLock(true);
} else {
setInputLock(false);
}
}}
editable={!inputLock}
..../>
const[inputLock,setInputLock]=useState(false);
.......
{
如果(nativeEvent.key==“Backspace”){
setInputLock(真);
}否则{
设置输入锁(假);
}
}}
可编辑={!inputLock}
..../>
我想您可以尝试为文本输入设置一个锁,并将其传递给文本输入的可编辑属性。当触发onKeyPress时,在键为backspace时锁定文本输入,否则释放锁定。例如:
const [inputLock, setInputLock] = useState(false);
.......
<TextInput
onKeyPress={({ nativeEvent }) => {
if (nativeEvent.key === "Backspace") {
setInputLock(true);
} else {
setInputLock(false);
}
}}
editable={!inputLock}
..../>
const[inputLock,setInputLock]=useState(false);
.......
{
如果(nativeEvent.key==“Backspace”){
setInputLock(真);
}否则{
设置输入锁(假);
}
}}
可编辑={!inputLock}
..../>
谢谢,修复了帖子并添加了key属性。我甚至尝试不使用“if”,onChangeText事件仍然会发生。首先,处理ContextChange我正在添加删除的符号,但它看起来并不完美,因为它会导致符号闪烁。第二,编写我自己的由文本和文本输入组件组成的组件。如果有办法取消ContextChange事件和更改值,我认为这将是一个简单而漂亮的解决方案。谢谢,修复了帖子并添加了key属性。我甚至尝试不使用“if”,onChangeText事件仍然会发生。首先,处理ContextChange我正在添加删除的符号,但它看起来并不完美,因为它会导致符号闪烁。第二,编写我自己的由文本和文本输入组件组成的组件。如果有办法取消ContextChange事件并更改值,我认为这将是一个简单而漂亮的解决方案。@andreprok,你找到解决方法了吗@andreprok,你找到工作了吗!