Ime*_*iri 2 javascript reactjs
我的反应组件中有以下事件.
/**
* On search change handler.
* @param {any} e Event object
* @memberof Login
*/
onSearchValueChange(e) {
this.setState({
search: e.target.value,
});
}
/**
* Render the token view if present.
* @param {object} e Event object.
*/
keyPress(e) {
if (e.keyCode === 13 && this.state.search !== '') {
e.preventDefault();
searchPackage(this.state.search).then((response) => {
this.setState({
redirect: true,
redirectOnSearch: true,
searchResults: response.data,
});
});
}
}
Run Code Online (Sandbox Code Playgroud)
绑定到以下输入元素,该元素来自react-bootstrap.
<FormControl key='search' id='search' type='text' placeholder='Search Packages' value={this.state.search} onKeyDown={this.keyPress} onChange={this.onSearchValueChange} />
Run Code Online (Sandbox Code Playgroud)
但是当我尝试在文本框中键入任何内容时,它只会触发keyPress事件,但不会触发事件onSearchValueChange.
我在这做错了什么?我绑定了构造函数中的所有事件.
您需要添加.bind(this)到您的功能.简单的方法,在标签内:
<FormControl ... onKeyDown={this.keyPress.bind(this)}
onChange={this.onSearchValueChange.bind(this)} />
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
129 次 |
| 最近记录: |