React native 更改文本输入';s值,而不使用setState

React native 更改文本输入';s值,而不使用setState,react-native,React Native,我正在尝试在不使用setState的情况下更改文本输入的值,因为当我们使用setState时,我们将在每次击键时呈现组件,但我没有发现任何内容您可以使用ref和setNativeProps import React from 'react'; import { TextInput, Text, TouchableOpacity, View } from 'react-native'; export default App = () => { clearText = () =>

我正在尝试在不使用setState的情况下更改文本输入的值,因为当我们使用setState时,我们将在每次击键时呈现组件,但我没有发现任何内容

您可以使用ref和setNativeProps

import React from 'react';
import { TextInput, Text, TouchableOpacity, View } from 'react-native';

export default App = () => {
  clearText = () => {
     _textInput.setNativeProps({text: ''});
  }

    return (
      <View style={{flex: 1, alignItems: 'center', justifyContent: 'center'}}>
        <TextInput
          ref={component => _textInput = component}
          style={{height: 50, width: 200, marginHorizontal: 20, borderWidth: 1, borderColor: '#ccc'}}
        />
        <TouchableOpacity onPress={clearText}>
          <Text>Clear text</Text>
        </TouchableOpacity>
      </View>
    );
}
从“React”导入React;
从“react native”导入{TextInput,Text,TouchableOpacity,View};
导出默认应用=()=>{
明文=()=>{
_textInput.setNativeProps({text:'});
}
返回(
_textInput=组件}
样式={{高度:50,宽度:200,边缘水平:20,边界宽度:1,边界颜色:'#ccc'}
/>
明文
);
}
有关更多信息,请查看以下内容


您可以使用
ref.setNativeProps({text:dummyText})
,但这种方法的问题是它不会给您
onFocus
回调

这就是更新文本输入值的方式。建议使用受控组件。顺便说一句,你可能对阅读不受控制的内容感兴趣:。这是官方的React文档,但您可以将其扩展到RN。但每次我键入或删除字母时都会呈现组件,这正常吗?React就是这样工作的:组件呈现反映组件状态。但是请注意,它将只重新渲染需要重新渲染的部分,而不是整个组件如果您不希望组件重新渲染,您希望如何看到值的可见更改?