Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
React native React Native:在这个文本输入代码中,onChangeText的值是如何过去的?_React Native_React Native Textinput - Fatal编程技术网

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})
    }