React native React Native:在这个文本输入代码中,onChangeText的值是如何过去的?
假设此代码是多个React native React Native:在这个文本输入代码中,onChangeText的值是如何过去的?,react-native,react-native-textinput,React Native,React Native Textinput,假设此代码是多个TextInputs的通用处理程序函数,由onChangeText调用: getHandler= key =>{ return val =>{ this.setState({[key]: val}) } } 此外,如果没有返回,代码也无法工作,为什么 //this code also doesn't work without return getHandler = key => { val => {
TextInput
s的通用处理程序函数,由onChangeText
调用:
getHandler= key =>{
return val =>{
this.setState({[key]: val})
}
}
此外,如果没有返回
,代码也无法工作,为什么
//this code also doesn't work without return
getHandler = key => {
val => {
this.setState({ [key]: val });
};
};
整个代码假定您已经编写了TextInput。您获得了
onChangeText
函数。你可以这样称呼它
// To avoid cases when no handler function is set
if(typeof onChangeText === "function"){
onChangeText(this.value);
}
在第一种情况下,传递的是getHandler
函数的返回值,即此函数(未命名):
在其他情况下,不返回函数。因此,当TextInput
的onChangeText
不是一个函数时,它会忽略传入它的任何内容。- 它使用高阶函数处理事件绑定,这是编写函数的基本方法之一
onChangeText
没有向getHandler
传递除“电话”之外的任何东西,val
没有传递给处理程序,但是getHandler
正在向onChangeText
返回一个函数,所以这就像onChangeText
代码类似:{this.setState({[key]:val})}}/>
//this code also doesn't work without return
getHandler = key => {
val => {
this.setState({ [key]: val });
};
};
// To avoid cases when no handler function is set
if(typeof onChangeText === "function"){
onChangeText(this.value);
}
val =>{
this.setState({[key]: val})
}