输入框的联想功能解决他的函数抖动问题
思路:函数抖动是因为他在一段时间内执行了多次,要想让他在这段时间内只执行一次呢就需要一个定时器来帮助延迟执行,如果在这段时间内多次触发,则把上次记录的延迟执行的代码用clearTimeout清掉,要是没被多次执行则等到延时时间一到执行目标代码即可
<input placeholder="输入业务负责人" onChange={(e)=>{this.search(e)}}>
if(time!==null){
clearTimeout(time)
}
search=(e)=>{
const data=e.target.value; //要传的参数就是选中的参数
time=setTimeout(()=>{
searchUser(parmas).then((res)=>{ //带参数发请求
this.setState({users:res.data.splice(0,5)}) //把请求回来的数据进行处理保存在一个变量中
})
},2000)
}
- splice()方法是向数组中添加或删除元素,返回被改变的数组,该方法会改变原数组,方法中的两个值是开始位置要是0从头开始算,要是负数就是从末尾开始算,第二个数是数量,截取多少个