天天看點

react input Onchange事件不能立刻拿到值,隻能拿到上次輸入的值

剛開始學習react 有許多基礎的問題,記錄一下

<Input className="search-input" type="text" name="search" placeholder="請輸入好友姓名/手機号" value={this.state.searchValue} onChange={this.handleChange}/>
           
handleChange(e){
	this.setState({
	searchValue: e.target.value
});
	console.log(this.state.searchValue)
}
           

結果:

react input Onchange事件不能立刻拿到值,隻能拿到上次輸入的值

為什麼???

react input,并不會立即重新整理狀态樹

setState是異步操作,不能馬上拿到state的值,可以在回調中拿到

我點選搜尋時,列印出來的時更新的state值就是本次輸入的值,如圖:

react input Onchange事件不能立刻拿到值,隻能拿到上次輸入的值
react input Onchange事件不能立刻拿到值,隻能拿到上次輸入的值

我們可以在setState回調中拿到值

react input Onchange事件不能立刻拿到值,隻能拿到上次輸入的值
react input Onchange事件不能立刻拿到值,隻能拿到上次輸入的值

是以react input,并不會立即重新整理狀态樹

setState是異步操作