React native 如何在React Native中禁用TextInput中的退格键?

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 ==

我使用的是TextInput,我希望TextInput中的第一个符号是常量。因此,如果文本的长度是一个符号,我可以忽略backspaces,而onChangeText事件可以忽略。 以下代码不起作用,仍然会发生onChangeText事件。请问,有什么解决办法吗

<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,你找到工作了吗!