对不起,我是新手反应本地的,并且想知道如何更改当前输入值?
与我一样,如果我直接输入一个新单词,则在不更改或替换新词的情况下继续出现上一个单词或以前的值。
类组件:
将输入的值保持在组件的状态下,该状态容纳此TextInput
组件。
class ParentComponent extends React.Component {
constructor (props) {
super(props)
this.state = { queryText: '' }
}
handleInputTextChange = (newText) => {
this.setState({ queryText: newText })
}
render () {
return (<View>
<TextInput
onChangeText={this.handleInputTextChange}
value={this.state.queryText}
/>
</View>)
}
}
注意我如何使用onChangeText
和handleInputTextChange
处理新值。
功能组件:
在功能组件中,我们使用钩子。要保持和更新文本值,我们使用useState
export default () => {
const [text, setText] = useState("");
return <TextView value={text} onChangeText={setText} />;
};
你好,您可以使用此方法:
this.state = {
email: '13119165220',
}
onChangeText={text => this.setState({ email: text })}
在功能组件中使用
export default () => {
const [text,setText] = React.useState("")
return <TextView
value={text}
onChangeText={setText} />
}
textInput需求值是在文本输入中显示的值。
并更新您使用OnChangeText的值,该值将调用您每次文本更改中的文本时指定的任何函数。
取决于您是否正在学习挂钩或没有代码的反应会更改:
带钩子:
import React,{useState} from 'react'
//others import
function MyTextInput (props){
const [userInput,setUserInput] = useState()
return (
<TextInput
value = {userInput}
onTextChange = {(text) => setUserInput(text)} /> //is always better call another function
) // where you can validate the input
如果您使用类和无钩编码的编码,则逻辑是相同的,只需更改语法:
import React,{Component} from 'react'
//other imports
class MyTextInput extends Component{
constructor(props){
super(props)
this.state = {
userInput:''
}
render(){
return (
<TextInput value = {this.state.userInput}
onChangeText = { text => this.setState({userInput:text}) />
)
}
}
在这里,文档的链接,您可以在其中找到TextInput接收到的所有道具,并说明:https://reaectnative.dev/docs/textinput