【发布时间】:2017-07-02 05:02:05
【问题描述】:
当用户停止输入时我需要执行搜索。我知道我应该使用 setTimeout() 。但是对于 Reactjs,我找不到它是如何工作的。 有人可以告诉我当用户停止输入几秒钟(假设 5)时如何调用一个方法(将处理搜索)。我不知道找出在哪里编写代码以检查用户是否已停止输入。
import React, {Component, PropTypes} from 'react';
export default class SearchBox extends Component {
state={
name:" ",
}
changeName = (event) => {
this.setState({name: event.target.value});
}
sendToParent = () => {
this.props.searching(this.state.name);
}
render() {
return (
<div>
<input type="text" placeholder='Enter name you wish to Search.' onChange={this.changeName} />
</div>
);
}
}
我想在用户停止输入时调用 sendToParent 方法。
【问题讨论】:
-
他们是在输入输入元素吗?如果是这样,输入元素有一个名为“onKeyPress”的属性,在选择该输入时,每次按下按钮时都会调用该属性。所以你可以让它在每次他们按下按钮时开始超时,但如果他们在超时执行之前再次按下按钮,它会重置计时器。如果他们没有输入 X 次,则超时执行搜索。
-
如果您指的是执行超时搜索和“停止输入”检查的实际代码,那么网上有很多示例
-
我的方法没有调用 onkeyPress
-
区分大小写,'onkeyPress' 不起作用。必须是“onKeyPress”
标签: reactjs settimeout