React Native:onChangeText 在此 TextInput 代码中如何传递值?
React Native: How value is past by onChangeText in this TextInput code?
此代码假定为多个 TextInput
的通用处理函数,由 onChangeText
调用:
getHandler= key =>{
return val =>{
this.setState({[key]: val})
}
}
.
<TextInput
onChangeText={this.getHandler('phone')}
/>
我不明白 val
从哪里得到它的值,它没有在任何地方明确定义,如果 val 由 onChangeText
传递并且不必在处理程序的道具然后为什么没有箭头符号以下内容不起作用:
getHandler = key => {
this.setState({ [key]: val });
};
如果没有 return
,代码也无法运行,为什么?
//this code also doesn't work without return
getHandler = key => {
val => {
this.setState({ [key]: val });
};
};
完整代码here
假设您已经编写了TextInput。你得到了 onChangeText
函数。你会这样称呼它
// To avoid cases when no handler function is set
if(typeof onChangeText === "function"){
onChangeText(this.value);
}
在第一种情况下,您传递的是 getHandler
函数的 return 值,即此函数(未命名):
val =>{
this.setState({[key]: val})
}
在其他情况下,您 return 不是函数。因此,当 TextInput
的 onChangeText
不是函数时,它会忽略您传入的任何内容。
- 使用高阶函数处理事件绑定,是函数的基本写法之一
此代码假定为多个 TextInput
的通用处理函数,由 onChangeText
调用:
getHandler= key =>{
return val =>{
this.setState({[key]: val})
}
}
.
<TextInput
onChangeText={this.getHandler('phone')}
/>
我不明白 val
从哪里得到它的值,它没有在任何地方明确定义,如果 val 由 onChangeText
传递并且不必在处理程序的道具然后为什么没有箭头符号以下内容不起作用:
getHandler = key => {
this.setState({ [key]: val });
};
如果没有 return
,代码也无法运行,为什么?
//this code also doesn't work without return
getHandler = key => {
val => {
this.setState({ [key]: val });
};
};
完整代码here
假设您已经编写了TextInput。你得到了 onChangeText
函数。你会这样称呼它
// To avoid cases when no handler function is set
if(typeof onChangeText === "function"){
onChangeText(this.value);
}
在第一种情况下,您传递的是 getHandler
函数的 return 值,即此函数(未命名):
val =>{
this.setState({[key]: val})
}
在其他情况下,您 return 不是函数。因此,当 TextInput
的 onChangeText
不是函数时,它会忽略您传入的任何内容。
- 使用高阶函数处理事件绑定,是函数的基本写法之一