input onChange中setState问题 reactjs万分感谢

由于不想一直setState,想输入停止后再去setstate,于是网上找了些方法,使用方法是用debounce
我参考下面代码,如果input里面加上value,不管我怎么输,为什么最后只能输出第一个字符出来?比如我输入589632147,最后只能输出5
原链接
http://billqiu.github.io/2017/10/15/how-to-debounce-in-react/
//稍微改了下,input里面加了value
importreact,{Component}from'react';
import{debounce}from'lodash.debounce';
exportdefaultclassDebounceextendsComponent{
construtor(){
super();
this.callAjax=debounce(this.callAjax,300);
}
callAjax=(value)=>{
console.log('value::',value);
this.setState({inputValue:value})
//callajax
}
printChange(e){
e.persist();
this.callAjax(e.target.value);
}
render(){
return(
);
}
}
天涯尽头无女友
浏览 427回答 2
2回答

慕标琳琳

importReact,{Component}from'react';lettimeout;exportdefaultclassDebounceextendsComponent{constructor(props){super(props);this.state={text:''}}debounce=(fn,wait)=>{if(timeout!==null)clearTimeout(timeout);timeout=setTimeout(fn,wait);console.log(timeout);}handleChange=(e)=>{consttext=e.target.value;this.debounce(()=>{this.setState({text})},1000);}render(){return({this.state.text})}}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript