我有一个调用'OnChangeText'事件的TextInput组件:
<TextInput onChangeText={(text) => this.setState({zip:text})}/>
工作正常。
现在我想将call事件更改为函数:
<TextInput onChangeText={_handleTextChange}/>
_handleTextChange(event) {
this.setState({zip:
event.nativeEvent.text});
}
这不起作用。我收到以下错误:
undefined不是对象(评估'event.nativeEvent.text'
如何将'Event'对象发送到_handleTextChange函数?
谢谢, 亚龙
答案 0 :(得分:9)
onChangeText
将string
传递给您的处理函数而不是Event
。
class YourComponent {
render () {
// ...
return <TextInput onChangeText={this._handleTextChange.bind(this)}/>;
}
_handleTextChange(text) {
this.setState({zip: text});
}
}
修改强>
如果您想要Event
而不是文字string
,则可以使用onChange
代替onChangeText
。
class YourComponent {
render () {
// ...
return <TextInput onChange={this._handleTextChange.bind(this)}/>;
}
_handleTextChange(event) {
this.setState({zip: event.nativeEvent.text});
}
}