我有組件搜索功能SearchArticle(),它正確使用this.state.search在組件掛載後顯示DEFAULT值(控制檯顯示正在搜索...:DEFAULT)。但是,當我更新this.state.search與handleKeyPress(E)他們相同的功能SearchArticle()它更新到e.target值之前使用上一個狀態(控制檯顯示搜索...:再次DEFAULT)。不知道如何解決它。如何通過React中的事件處理程序更新和使用狀態
class Searcher extends Component {
constructor(props) {
super(props);
this.state = {
article: [], search: "DEFAULT"
};
}
searchArticle() {
console.log('Searching...: ', this.state.search)
}
handleKeyPress = (e) => {
if (e.key === 'Enter') {
this.setState({search: e.target.value});
this.searchArticle();
}
}
componentDidMount() {
this.searchArticle();
}
render() {
return (
<div className="row">
Search: <input onKeyPress={this.handleKeyPress} type="text" />
</div>
)
}
}