反应原生事件

时间:2016-06-27 06:06:04

标签: reactjs react-native

我有一个调用'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函数?

谢谢, 亚龙

1 个答案:

答案 0 :(得分:9)

onChangeTextstring传递给您的处理函数而不是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});
  }
}